i007.cc

i007.cc

优先队列-降维打击

[cmake]如何设置Debug和Release编译模式

原文地址

推荐:让cmake 生成的工程在release 模式下可以调试

Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度

一般Debug和Release必须在不同的目录下编译,否则每次当切换模式时必须把编译文件全部删掉。 这里假设新建两个目录Debug和Release来分别用于构建相应的模式:

mkdir Release
cd Release
cmake -DCMAKE_BUILD_TYPE=Release ..
make

mkdir Debug
cd Debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
make

 

windows下的注意事项 如果是windows下,想使用CMAKE_BUILD_TYPE参数,cmake时必须用-G”NMake Makefiles”,而不能用-G”Visual Studio 14″(这里假设vs2015为例。如果你使用了-G”Visual Studio 14″且要指定release/debug,我觉得应该在msbuild命令参数中设置,具体如何设置还没去研究),否则会提示无法识别CMAKE_BUILD_TYPE。

用法示例:

cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release path\to\source\dirnmake

 

注意:如果不使用CMAKE_BUILD_TYPE参数,则默认是Debug

其他参考: http://stackoverflow.com/questions/7724569/debug-vs-release-in-cmake

推荐:Cmake编译OpenCV和如何在VS工程中配置来使用编译后的OpenCV进行跟踪调试问题

OpenCV的安装和配置,有编译安装和非编译安装,前者的好处可以在调试的时候跟踪到源码内部,没有这个需求的人可以直接用OpenCV已经编译好的,2.4.3版本之前的在x

一般Debug和Release必须在不同的目录下编译,否则每次当切换模式时必须把编译文件全部删掉。 这里假设新建两个目录Debug和Release来分别用于构建相应的模式:     mkdir Releasecd Releasec

发表回复