Sembra che abbiamo bisogno di creare una cartella separata per ogni tipo di build (debug/release), eseguire cmake su ognuno e generare un makefile separato per la configurazione di debug/release. È possibile creare un singolo makefile usando cmake che supporta sia la configurazione di debug/release allo stesso tempo sia quando eseguiamo effettivamente "make" che creerà cartelle separate per i prodotti intermedi e finali (come le dll, exe).Can Cmake genera un singolo makefile che supporta sia il debug che il rilascio
10
A
risposta
8
Per quanto ne so, questo non può essere ottenuto utilizzando un singolo set di script di compilazione. Tuttavia, ciò che si può fare è avere due sotto-directory della vostra zona di lavoro:
build/
build/debug
build/release
Poi fare:
$ cd build
$
$ cd build/debug
$ cmake -DCMAKE_BUILD_TYPE=Debug ../..
$ make
$
$ cd ../release
$ cmake -DCMAKE_BUILD_TYPE=Release ../..
$ make
Se necessario, è possibile aggiungere un altro script di build nella directory build
in quanto tale:
#!/bin/sh
cd debug && make && cd ..
cd release && make && cd ..
1
Questo può essere ottenuto utilizzando il comando ADD_CUSTOM_TARGET
. Ad esempio, se si desidera aggiungere sia il debug e gli obiettivi di rilascio nel makefile, aggiungere il seguente al file CMakeLists.txt:
ADD_CUSTOM_TARGET(debug
COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug ${CMAKE_SOURCE_DIR}
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target all
COMMENT "Creating the executable in the debug mode.")
ADD_CUSTOM_TARGET(release
COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release ${CMAKE_SOURCE_DIR}
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target all
COMMENT "Creating the executable in the release mode.")
Poi, dopo aver configurato con CMake, è possibile eseguire make debug
a fare l'obiettivo di debug ed eseguire make release
per rendere la destinazione di rilascio nella stessa directory.
Problemi correlati
- 1. Makefile Verbale NMake che utilizza CMake
- 2. uploadArchives costruire sia di debug e rilascio
- 3. App di progettazione che supporta sia iOS8 che iOS7
- 4. cmake: una sottodirectory utilizza il proprio Makefile
- 5. Un singolo server Apache può gestire sia Tomcat che PHP?
- 6. Debug.Assert genera IL in modalità di rilascio?
- 7. equivalente Makefile in CMake
- 8. supporta sia la risposta REST xml che json nel clojure
- 9. Come posso verificare che un apk Android sia firmato con un certificato di rilascio?
- 10. Controllo DateTime che supporta il calendario Hijri
- 11. In che modo il metodo attende il rilascio del blocco?
- 12. Debug dell'applicazione Android dopo il rilascio
- 13. Visualizza sia il codice assembly che C
- 14. Cos'è un semplice codice F # che genera l'istruzione .tail IL?
- 15. Include makefile esterno con CMake
- 16. Makefile CMake, Xcode e Unix
- 17. Come ottenere CMake per utilizzare il Makefile esistente?
- 18. Makefile che comprime javascript
- 19. Tela Disegno 3D utilizzando sia il contesto 2D che 3D
- 20. Il Resharper 4.1 supporta sia cammello che gobbe e le normali modalità di selezione?
- 21. CMake supporta Python3?
- 22. Verificare che il termine sia un elenco di variabili distinte
- 23. Sia massimizzare che impedire il ridimensionamento su un JFrame?
- 24. assicurandosi che il programma sia in un terminale
- 25. Perché il DOM ha sia la finestra che il sé?
- 26. ORM che supporta Mono?
- 27. Che cos'è il debug di Loglevel?
- 28. Se 'Process.HasExited' genera un'eccezione, posso supporre che il processo sia andato?
- 29. Can CMake/CPack può generare più installer NSIS per un singolo progetto?
- 30. Makefile per il programma C che utilizza estensioni numpy
E il file sln di Visual Studio, genera anche solo il debug o solo la configurazione di rilascio o supporta entrambi nello stesso file .sln? – user243655
@ user243655: Sembra generare più configurazioni: 'Debug',' Release', 'MinSizeRel' e' RelWithDebInfo'. –
Grazie mille per le informazioni. – user243655