visual-studio-2012 - 多配置生成器中基于 CMake 配置的条件

标签 visual-studio-2012 cmake

我希望根据在调试或发布中构建的情况来指定要使用的不同 DLL。例如:

 IF CONFIGURATION MATCHES Debug
     SET(MYDLL my_dlld)
ELSE()
     SET(MYDLL my_dll)
ENDIF()

我看过逻辑表达式,例如

$<$<CONFIG:Debug>:DEBUG_MODE>

但这似乎不起作用,也许我的实现不正确。任何帮助将不胜感激

编辑:一些用于理解的最少代码

PROJECT(myproject)

#ADD_DEFINITIONS(-DMANAGER_EXPORTS)

INCLUDE_DIRECTORIES(
                     ${CMAKE_SOURCE_DIR}/API/mydll
                   )

$<$<CONFIG:Debug>:SET(MYDLL mydlld)>
$<$<CONFIG:Release>:SET(MYDLL mydll)>

SET(LIBS
          ${MYDLL}
   )

mydll - 是一个预先生成的共享库,具有调试和发布版本

最佳答案

我认为一个可能的解决方案是您可以执行以下操作

#SET(LINK_LIB debug my_dlld optimized my_dll)
#TARGET_LINK_LIBRARIES(MYDLL ${LINK_LIB})

希望这有帮助!

关于visual-studio-2012 - 多配置生成器中基于 CMake 配置的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34946480/

相关文章:

asp.net-mvc - 如何创建 ASP.NET MVC 类库

c# - Excel 工作表错误 : One or more types required to compile a dynamic expression cannot be found

msbuild - VS2012 中 VsDevCmd.bat 和 vcvarsall.bat 的区别

windows - MS Visual Studio 2012 可以与 Windows Vista 一起使用吗?

build - CMake - native 编译和交叉编译相同的代码

python - libcurl ubuntu python 中不支持或禁用协议(protocol) "https"

c# - MSTest 中是否有非静态 ClassInitialize 替代方案?

swift - 在 CentOS 上构建 Swift

c++ - CLion 和 Boost 1.60.0

testing - 带有水果测试的 Cmake