Я просто хочу отладить некоторый код, работающий на Linux, и мне нужна отладочная сборка (-O0 -ggdb
). Поэтому я добавил эти вещи к моему CMakeLists.txt
:cmake CFLAGS CXXFLAGS модификация
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"
?
Если вы хотите отлаживать сборку, просто выполните отладку configure в командной строке. msgstr "cmake -DCMAKE_BUILD_TYPE = Отладка". Полученная сборка будет иметь флаги отладки для данной системы сборки. Нет причин изменять сам файл cmake. Вы также можете отправить значение CMAKE_C_FLAGS с другим аргументом -D. – Atifm