【问题标题】:build c++ in debug mode with biicode cmake使用 biicode cmake 在调试模式下构建 c++
【发布时间】:2014-11-18 00:31:21
【问题描述】:

由于我无法从发布版本更改为调试版本类型,我想知道我做错了什么。我正在使用 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 之间进行更改的最佳位置是什么?

【问题讨论】:

标签: c++ cmake biicode


【解决方案1】:

从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

【讨论】:

  • 完美答案。我还发现仔细检查很有用,至少对于 makefile,bii cpp:build -- VERBOSE=1 显示了实际的编译命令。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-23
  • 1970-01-01
  • 1970-01-01
  • 2014-06-13
  • 1970-01-01
  • 2016-09-01
相关资源
最近更新 更多