怎么使用CMake链接不同版本的第三方库?(vs2013)

Fancy_ 发布于 2016/08/10 09:57
阅读 1K+
收藏 0

比如我有一个工程, 需要用到第三方库,第三方库是已经编译好的, 有Debug版本和Release版本,现在用CMake生成工程后, 如果编译Debug版本的则配置链接到Debug版本的第三方库, Release也类似.CMakeLists.txt文件中应该怎么判断?

由于用的是VS2013, 所以不能用命令cmake -DCMAKE_BUILD_TYPE=Debug . 这种方法来编译.而且CMake默认就支持了Debug, Release, RelWithDebInfo, MinSizeRel这几个版本, 如果使用默认的话 CMAKE_BUILD_TYPE是为空的.

求指教啊!!!

加载中
0
a
autocoder

用LINK_DIRECTORIES设置好lib目录. 在lib目录分别弄好 debug目录 和 release目录放好编译好的第三方. 在project的链接上面设置好 第三方库的名字TARGET_LINK_LIBRARIES(projectname libname)

弄个批处理

rmdir /S /Q build
mkdir build
cd build
cmake -G "Visual Studio 12" ..
cd ..

sln会生成在build目录. 打开sln. 编译你需要的debug或release版即可.

0
枫听烨歌
枫听烨歌

其实没有必要再写批处理来做这件事。

CMake中有CMAKE_CONFIGURATION_TYPE这个环境变量,其中的值就是Debug, Release, RelWithDebInfo, MinSizeRel这几个。只要使用if语句判断一下,在指定的版本使用指定的第三方库版本就可以了。

可以参考OpenCV的CMakeLists

返回顶部
顶部