根据项目配置链接库
Linking libraries depending on project configuration
我正在开发一个游戏引擎。我使用 Visual Studio 2012,但我计划很快迁移到 2015 社区。我使用专用的物理引擎(NVIDIA PhysX(。我在头文件中链接其库,使用 #pragma
:
#pragma comment(lib, "libraryDEBUG.lib") // Example
PhysX API 附带不同的库版本,用于调试和发布配置。因此,如果我想编译引擎的发布版本,我必须手动将上面的代码更改为:
#pragma comment(lib, "libraryRELEASE.lib")
我想自动化这个过程。这是我到目前为止所发现的:
#ifndef NDEBUG
#pragma comment(lib, "libraryRELEASE.lib")
#else
#pragma comment(lib, "libraryDEBUG.lib")
#endif
这样做是道具的方式吗?我知道NDEBUG
只是启用/禁用断言,但我看不到另一种方法可以做到这一点。
在Visual Studio中执行此操作的正确方法是在Linker > Input > Additional Dependencies
下更改项目配置设置。
将类似 Library$(ConfigurationName).lib
的内容添加到调试和发布配置中。
如果需要可移植解决方案(例如,不必共享项目文件(,请考虑使用 CMake 为你生成解决方案和配置。
至于NDEBUG
选项 - 只要 Windows 是您唯一的目标平台,它就有效。
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- CMake-按正确顺序将项目与C运行时对象文件链接
- 从链接列表c++中删除一个项目
- 我可以在C++中配置静态链接吗?
- 在调试配置中编译工作正常,但发布会给出链接错误
- 错误 VSP1011:无法获取调试信息.与 /配置文件链接器开关链接
- 根据用户配置在运行时链接共享对象
- 使用多个库时,在 CMakeList 中配置target_link_libraries的正确方法是什么?获取无法指定链接
- 在Mac 10.9 Mavericks上,clang配置与gcc链接配置不同吗
- 如何设计一个配置实用程序来静态和动态链接工作
- 我如何链接已配置为具有不同前缀的Libevent
- Visual Studio 2010 默认属性表似乎在调试和发布配置下都链接在一起,这是怎么回事?
- CMakeLists配置以链接两个C++项目
- std::tr1::函数为VS2008 SP1中的x64配置提供链接错误
- 配置 Qt .pro 文件以使用 cl.exe 和 link.exe 来修复链接错误
- 根据项目配置链接库
- Binutils ld链接器如何配置模拟模式(使用mingw生成后不支持模拟)
- 在msvc++ 2010中,在调试配置中用静态链接编译DLL时,链接器错误
- 如何配置NetBeans来静态链接MinGW C++库
- QT Creator配置更改以解决链接错误