使用Biicode和CMake在调试模式下构建C++。

6

由于我无法从发布版本更改为调试版本,我想知道我做错了什么。 我正在使用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 命令的顺序。

这是一个误解、语法错误还是其他问题?在哪里最好更改 Debug 和 Release 之间的设置?


1
不要像这样设置构建类型,参见https://dev59.com/EmAf5IYBdhLWcg3wnDwI#24470998:SET(CMAKE_BUILD_TYPE Debug) - user2288008
1个回答

10
biicode docs看来,似乎你需要使用bii cpp:configure命令来传递参数给CMake,而不是bii cpp:build
正如@ruslo所评论的那样,在实际的CMakeLists.txt中设置CMAKE_BUILD_TYPE并不是一个好的做法(参见他的回答了解更多细节),因此你可能想要执行以下操作:
bii cpp:configure -DCMAKE_BUILD_TYPE=Debug
bii cpp:build

我知道你说你正在使用Unix makefiles,但是如果你使用的是多配置生成器(比如Visual Studio),构建类型不会在配置时设置。相反,它会在构建时设置。在这种情况下,我希望biicode命令更像这样:
bii cpp:configure -G "Visual Studio 12 Win64"
bii cpp:build --config Debug

1
完美的答案。我也发现通过双重检查,至少对于 makefiles , bii cpp:build -- VERBOSE=1 显示了实际的编译命令是很有用的。 - jmmut

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接