根据项目配置链接库

Linking libraries depending on project configuration

本文关键字:链接 配置 项目      更新时间:2023-10-16

我正在开发一个游戏引擎。我使用 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 是您唯一的目标平台,它就有效。