我正在尝试包含调试/发布相关的编译器标志,例如:
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(在不同的机器上)完美配合,所以这种方法已被弃用或者是否存在其他问题?
泽纳
答案 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类型项目,而不是两者一起。