c++ - 使用 biicode cmake 在 Debug模式下构建 C++

标签 c++ cmake biicode

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

在 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 之间更改的最佳位置是什么?

最佳答案

来自biicode docs ,看起来您需要使用 bii cpp:configure 命令将参数传递给 CMake,而不是 bii cpp:build

正如@ruslo 评论的那样,在实际的 CMakeLists.txt 中设置 CMAKE_BUILD_TYPE 不是好的做法(see his answer 了解更多详情),因此您可能想要这样做:

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

我知道您说您正在使用 Unix makefile,但是如果您使用的是多配置生成器(如 Visual Studio),构建类型不会在配置时设置。而是在构建时设置。在那种情况下,我希望 biicode 命令更像:

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

关于c++ - 使用 biicode cmake 在 Debug模式下构建 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26984573/

相关文章:

c++ - 避免依赖关系使我的VS解决方案中的项目数量激增

c++ - eclipse 中是否有任何插件或附加组件可用于根据一组编码标准检查/(如果有的话设置自己的规则)C/C++ 源代码?

c++ - 开箱即用的 Qt 5 HTML 模板

c++ - 与 Travis 一起使用 bii 时要在 gitignore 中放些什么

c++ - Bii 发现 Apache Xerces 的警告消息包括

c++ - 如何将 float 作为模板参数传递?

c++ - 如何使用外部库中的函数?

c++ - CMake C/C++宏生成

c++ - 是否有用于 OpenNI2 的 CMakeLists?

sqlite - 将SQLite与biicode一起使用