Voglio solo eseguire il debug di alcuni codici in esecuzione su Linux e ho bisogno di una build di debug (-O0 -ggdb
). Così ho aggiunto queste cose al mio CMakeLists.txt
:cmake CFLAGS CXXFLAGS modifica
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")
Quando ho provato a compilare ho acceso verbose sull'uso make VERBOSE=1
E ho osservato l'uscita, come questo
... /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 ...
A quanto pare il codice viene compilato con "-g -O2"
e questo non è quello che voglio. Come posso costringerlo a usare solo "-O0 -ggdb"
?
Se si desidera una compilazione di debug, è sufficiente eseguire una configurazione di debug nella riga di comando. "cmake -DCMAKE_BUILD_TYPE = Debug". La build risultante avrà i flag di debug per il dato sistema di build. Nessun motivo per modificare il file cmake stesso. Puoi anche inviare il valore CMAKE_C_FLAGS con un altro argomento -D. – Atifm