Con cmake, in genere è consigliabile eseguire un "out of source" build. Crea il tuo CMakeLists.txt
nella radice del tuo progetto. Poi dalla radice del proprio progetto:
mkdir Release
cd Release
cmake -DCMAKE_BUILD_TYPE=Release ..
make
E per Debug
(ancora una volta dalla radice del progetto):
mkdir Debug
cd Debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
Release
/Debug
aggiungerà i flag appropriati per il compilatore. Esistono anche configurazioni di build RelWithDebInfo
e MinSizeRel
.
È possibile modificare/aggiungere alle bandiere nelle vostre CMakeLists.txt
via CMAKE_C_FLAGS_DEBUG
e CMAKE_C_FLAGS_RELEASE
variabili, ad es .:
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall")
Vedere CMAKE_BUILD_TYPE per maggiori dettagli.
Per quanto riguarda il 3 ° domanda, io non sono sicuro di quello che stai chiedendo esattamente. CMake dovrebbe rilevare automaticamente e utilizzare il compilatore appropriato per i diversi file sorgente.
È anche possibile fare un 'CMake -i ..' invece, in modo da CMake verrà eseguito in modo interattivo , chiedendoti quale tipo di build vuoi (None, Release, Debug, MinSizeRel, RelWithDebInfo).L'opzione – thiagowfx
@thiagowfx '-i' restituisce questo messaggio di errore:' La modalità guidata "cmake -i" non è più supportata. Sto usando cmake 3.7.1 –
Bella osservazione. Sembra che fosse deprecato dalla versione '3.0.0'. [Riferimento] (https://cmake.org/cmake/help/v3.0/release/3.0.0.html#deprecated-and-removed-features). – thiagowfx