Wygląda na to, że musimy utworzyć osobny folder dla każdego typu kompilacji (debug/release), uruchomić cmake na każdym z nich i wygenerować osobny plik Makefile dla konfiguracji debugowania/wydania. Czy jest możliwe utworzenie jednego pliku Makefile za pomocą cmake'a, który obsługuje zarówno konfigurację debugowania/wydania w tym samym czasie, jak i kiedy faktycznie uruchamiamy "make", który utworzy osobne foldery dla produktów pośrednich i końcowych (takich jak biblioteki dll, exe).Can Cmake generuje pojedynczy plik Makefile, który obsługuje debugowanie i wydanie
10
A
Odpowiedz
8
O ile mi wiadomo, nie można tego osiągnąć za pomocą pojedynczego zestawu skryptów kompilacji. Jednak to, co można zrobić, to mieć dwa podkatalogi swojego obszaru roboczego:
build/
build/debug
build/release
Następnie wykonaj:
$ cd build
$
$ cd build/debug
$ cmake -DCMAKE_BUILD_TYPE=Debug ../..
$ make
$
$ cd ../release
$ cmake -DCMAKE_BUILD_TYPE=Release ../..
$ make
Jeśli to konieczne, można dodać kolejny skrypt kompilacji w katalogu build
jako takie:
#!/bin/sh
cd debug && make && cd ..
cd release && make && cd ..
1
Można to osiągnąć za pomocą polecenia ADD_CUSTOM_TARGET
. Na przykład, jeśli chcesz dodać zarówno debugowanie i celów zwalniające w makefile, dodać następujące do pliku 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.")
Następnie, po skonfigurowaniu z cmake, można uruchomić make debug
aby cel debugowania i uruchom make release
, aby zwolnić miejsce docelowe w tym samym katalogu.
Powiązane problemy
- 1. Jak przekonwertować CMake na istniejący plik Makefile?
- 2. Can Maven generuje deklarację modułu
- 3. Jak wykluczyć pojedynczy plik z wzorca `plik (GLOB ...)` cmake?
- 4. Odpowiednik pliku Makefile w CMake
- 5. Dokumentacja LaTeX i plik Makefile
- 6. Czy CMake obsługuje Python3?
- 7. Dołącz zewnętrzne makefile z CMake
- 8. cmake - niech podkatalog użyje własnego pliku Makefile
- 9. debugowanie projektu makefile w środowisku Eclipse
- 10. Skompiluj jeden plik w projekcie CMake?
- 11. Z modułów jądra drzewa: Wiele modułów, pojedynczy plik Makefile, ten sam plik źródłowy, różne opcje kompilacji
- 12. Konwertowanie starego pliku Makefile na CMake
- 13. Różnica między używaniem Makefile i cmake do kompilacji kodu
- 14. cmake i wizualne studio
- 15. BSD Make i GNU Utwórz zgodny plik Makefile
- 16. Activeadmin can can błąd autoryzacji
- 17. CMake generuje projekt xcode z lokalizacjami
- 18. Pobierz pojedynczy plik
- 19. Jak RSYNC pojedynczy plik?
- 20. Filtr kątowy, który generuje html
- 21. Makefile, kompilowanie i łączenie
- 22. Py2Exe generuje plik dziennika
- 23. Uruchom plik wykonywalny z makefile
- 24. SVN - Jak załadować pojedynczy plik?
- 25. Debugowanie vs Wydanie optymalizacji .net (dotyczy dystrybucji do użytkowników)
- 26. Jak poprawnie utworzyć plik Makefile, aby skompilować i uruchomić?
- 27. aplikacja działa jako debugowanie, ale ulega awarii jako wydanie
- 28. Jak utworzyć plik Makefile, który skompiluje i uruchomi kod java z argumentami wiersza poleceń?
- 29. Can Owin obsługuje również odpowiedzi w swoim kanale
- 30. (W jaki sposób) Czy mogę wykonać pojedynczy plik .cmake w systemie Windows?
co z plikiem sln wizualnego studia, czy generuje on także tylko debugowanie lub konfigurację tylko do wydania, czy obsługuje zarówno w tym samym pliku .sln? – user243655
@ user243655: Wydaje się, że generuje wiele konfiguracji: 'Debugowanie',' Release', 'MinSizeRel' i' RelWithDebInfo'. –
Wielkie dzięki za informacje. – user243655