使用biicode cmake在调试模式下构建c ++

时间:2014-11-18 00:31:21

标签: c++ cmake biicode

由于我无法从发布版本更改为调试版本类型,我想知道我做错了什么。我正在使用Unix Makefiles。

在docs.biicode.com/c++/building.html中,如何在CMakeLists.txt中添加SET(),将变量添加到cmake。

我是cmake和biicode的新手,我尝试了所有:

ADD_DEFINITIONS(-DCMAKE_BUILD_TYPE=Debug)
ADD_DEFINITIONS(-DCMAKE_BUILD_TYPE:STRING=Debug)
SET(CMAKE_BUILD_TYPE Debug)
target_compile_options(my_program PUBLIC $<$<CONFIG:Debug>:-Werror>)

但是gdb说“找不到调试符号”。

另一种方式,作为状态bii --help cpp,传递给cpp:build参数,这些参数将传递给cmake,但是调用

bii cpp:build -DCMAKE_BUILD_TYPE=Debug

产量

Building: cmake --build . -DCMAKE_BUILD_TYPE=Debug
Unknown argument -DCMAKE_BUILD_TYPE=Debug

但是直接打电话

cmake -DCMAKE_BUILD_TYPE=Debug --build .

工作正常,我不知道如何更改bii cpp:build命令中的顺序。

这是一个误解,一个sintax错误,还是一定有其他错误?在Debug和Release之间改变的最佳位置是什么?

1 个答案:

答案 0 :(得分:10)

biicode docs开始,您似乎需要使用bii cpp:configure命令将参数传递给CMake,而不是bii cpp:build

正如@ruslo评论的那样,在实际的CMakeLists.txt(see his answer中设置CMAKE_BUILD_TYPE以获取更多详细信息)并不是一个好习惯,所以你可能想这样做:

bii cpp:configure -DCMAKE_BUILD_TYPE=Debug
bii cpp:build

我意识到你说你正在使用Unix makefile,但 if 你使用的是多配置生成器(如Visual Studio),构建类型在配置时没有设置。而是在构建时设置。在这种情况下,我希望biicode命令更像是:

bii cpp:configure -G "Visual Studio 12 Win64"
bii cpp:build --config Debug