gpt4 book ai didi

cmake - 使用 CMake 设置 CFLAGS 和 CXXFLAGS 选项

转载 作者:行者123 更新时间:2023-12-03 05:20:46 29 4
gpt4 key购买 nike

我只想调试在 Linux 上运行的一些代码,并且需要调试版本 ( -O0 -ggdb )。所以我将这些东西添加到我的 CMakeLists.txt 文件:

set(CMAKE_BUILD_TYPE DEBUG)
set(CMAKE_C_FLAGS "-O0 -ggdb")
set(CMAKE_C_FLAGS_DEBUG "-O0 -ggdb")
set(CMAKE_C_FLAGS_RELEASE "-O0 -ggdb")
set(CMAKE_CXX_FLAGS "-O0 -ggdb")
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "-O0 -ggdb")

当我尝试编译时,我使用 make VERBOSE=1 启用了详细信息我观察了输出,像这样

... /usr/bin/c++ -D_BSD_SOURCE **-O0 -ggdb** -Wnon-virtual-dtor 
-Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W
-Wpointer-arith -Wformat-security -fno-exceptions -DQT_NO_EXCEPTIONS
-fno-check-new -fno-common -Woverloaded-virtual -fno-threadsafe-statics
-fvisibility=hidden -fvisibility-inlines-hidden **-g -O2**
-fno-reorder-blocks -fno-schedule-insns -fno-inline ...

显然代码是用“-g -O2 ”编译的,这不是我想要的。如何强制它仅使用 "-O0 -ggdb"

最佳答案

您需要在 CMakeLists.txt 中的 project 命令之后设置标志。

此外,如果您调用 include(${QT_USE_FILE})add_definitions(${QT_DEFINITIONS}),则应包含这些 code> 命令位于 Qt 命令之后,因为这些命令会附加更多标志。如果是这种情况,您可能只想将标记附加到 Qt 标记上,因此请更改为例如

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -ggdb")

关于cmake - 使用 CMake 设置 CFLAGS 和 CXXFLAGS 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10085945/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com