CMakeLists.txt 编写问题

2018-03-01 09:27:09 +08:00
 thomaswang

在编译的时候加上-Wall -g 之类的参数,方便调试,如何编译 CMakeLists.txt

2390 次点击
所在节点    问与答
5 条回复
jiutai21
2018-03-01 09:49:33 +08:00
set(CMAKE_C_FLAGS "-Wall -O0 -ggdb")
这样
xylophone21
2018-03-01 09:51:47 +08:00
内置的方法是:
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb ")
SET(CMAKE_CXX_FLAGS_RELEASE "${ENV{CXXFLAGS} -O3 -Wall")
cmake -DCMAKE_BUILD_TYPE=Debug/Release path

自定义的方法是:
cmake -DXXX=1
if(XXX STREQUAL 1)
suikator
2018-03-01 09:54:42 +08:00
set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
radioactivezx
2018-03-01 10:47:39 +08:00
上面说的直接设置 CMAKE_C_FLAGS/CMAKE_CXX_FLAGS,对 Debug/Release/RELWITHDEBINFO/MINSIZEREL 单独设置也可以。

有专门的命令 add_compile_options 对目录级别设置。

对单独 target 设置可以用 target_compile_options 或更通用也更麻烦的 set_target_properties(... COMPILE_FLAGS ...) 设置。

具体以上命令可以查 CMake 文档。

@suikator set(CMAKE_BUILD_TYPE "Debug") 是没有用的,如果想要默认直接设置 CMAKE_BUILD_TYPE 应该 set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "" FORCE)
700388
2018-03-01 12:06:00 +08:00
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug

前提要在 CMakeLists.txt 声明。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/433750

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX