Cmake忽略CMAKE_BUILD_TYPE = Debug

时间:2012-06-14 14:38:36

标签: debugging cmake version release

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

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")

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

cmake -DCMAKE_BUILD_TYPE=Release -D UseFortran=True -D CMAKE_CXX_COMPILER=g++-4.6 ~/repos/cliques/cliques

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

泽纳

4 个答案:

答案 0 :(得分:5)

你有一个错字。您的代码显示CMAKE_CSS_FLAGS_RELEASE。请注意CSS,它应该是CXX

答案 1 :(得分:4)

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

cmake -D CMAKE_BUILD_TYPE=Release -D UseFortran=True -D CMAKE_CXX_COMPILER=g++-4.6 ~/repos/cliques/cliques

答案 2 :(得分:2)

我认为他们在之前的版本中制作了一个错误的CMAKE_BUILD_TYPE。我们有这个问题,这里有一条有用的线。

cmake -D CMAKE_BUILD_TYPE:STRING=Debug ../src

您可以使用以下方式检查每件事情是否合理:

cmake -L ../src

使用此命令可以为您提供命名变量CMAKE_BUILD_TYPE的正确方法。

祝你好运。

答案 3 :(得分:1)

创建构建文件夹时,为什么不使用-DCMAKE_BUILD_TYPE=Debug? Cmake构建Release类型项目或Debug类型项目,而不是两者一起。