Cmake忽略CMAKE_BUILD_TYPE = Debug

zen*_*nna 8 debugging release version cmake

我试图包含调试/发布相关的编译器标志,例如:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x -Wall -DUSE_BOOST")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall")
set(CMAKE_CSS_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -O3")
Run Code Online (Sandbox Code Playgroud)

我使用如下命令创建我的构建文件夹:

cmake -DCMAKE_BUILD_TYPE=Release -D UseFortran=True -D CMAKE_CXX_COMPILER=g++-4.6 ~/repos/cliques/cliques
Run Code Online (Sandbox Code Playgroud)

但是在CMAKE版本2.8.7中似乎忽略了CMAKE_BUILD_TYPE.它似乎与2.8.4版本(在不同的机器上)完美配合,所以这种方法已被弃用或者是否存在其他问题?

泽纳

dou*_*536 5

你有一个错字.你的代码说CMAKE_CSS_FLAGS_RELEASE.请注意CSS,它应该是CXX.


zen*_*nna 4

问题是-D和 变量之间必须有一个空格。也就是说,它应该是:

cmake -D CMAKE_BUILD_TYPE=Release -D UseFortran=True -D CMAKE_CXX_COMPILER=g++-4.6 ~/repos/cliques/cliques
Run Code Online (Sandbox Code Playgroud)

  • 我从来没有在 -D 之后使用空格。您确定您的“CMAKE_CXX_FLAGS_DEBUG”包含“-g”吗?如果您重复使用相同的构建目录,则可能会重复使用变量缓存中的无效值。 (6认同)