Czytam jednak HERE, ale nadal nie rozumiem składni zmiennej qmake CONFIG
. Na przykład, jeśli mam następujące ustawienia config w moich .pro file
:qMake: Jak dokładnie qmake interpretuje składnię "CONFIG (debug, debug | release)
CONFIG(debug, debug|release) {
message("debug mode")
}else {
message("release mode")
}
wtedy, gdy uruchomiony qmake
dodaje będą wyświetlane na wyjście kompilacji w Qt Creator:
Project MESSAGE: debug mode
Project MESSAGE: debug mode
Project MESSAGE: release mode
wiedząc, że buduję mój projekt w „trybie debugowania” , to moje pytania są następujące:
- dlaczego nie wyświetla się tylko komunikat "Tryb debugowania"? i dlaczego nie wyświetlać go tylko raz?
- Następnie, ponieważ buduję w "trybie debugowania", , dlaczego wyświetlany jest komunikat "Project MESSAGE: release mode"?
- Dokładnie, co to znaczy: CONFIG (debug, debug | release)? Czy oznacza to, że należy wbudować tryb debugowania, a następnie ponownie utworzyć tryb debugowania i na koniec utworzyć tryb wydania? Wiem, że nawiasy "{}" oznaczają scope, ale w jaki sposób qmake interpretuje to, co znajduje się wewnątrz tych nawiasów "()"?
Dziękuję bardzo za odpowiedź, jest niezwykle ważna i pomocna. Jednak nie rozumiałem tej części "oceny oświadczenia".wspomniałeś, że "' CONFIG (debug, debug | release) 'zwraca wartość true, jeśli CONFIG zawiera debugowanie etc ...", co masz na myśli przez "zawiera"? masz na myśli zdefiniowane jak w 'CONFIG + = debug'? jeśli tak, biorąc pod uwagę, że nie mam takiej definicji w moim pliku '.pro', to gdzie znajduje się ta definicja? ... jeszcze jedno, zdefiniowałeś to również: 'CONFIG + = release debug release debug release release, co oznacza zdefiniowanie" debugowania "i" wydania "w ten sposób? – hashDefine
proszę, wybaczcie też moje zbyt wiele pytań, ponieważ nie mogę znaleźć żadnego źródła internetowego, które to tłumaczy, nie wspominając o waszym wyjaśnieniu jest bardzo proste, zwięzłe i jasne. – hashDefine
@hashDefine Qt Creator może dodać "release" do CONFIG podczas wywoływania qmake. Na przykład, jeśli wybierzesz "Uruchom qmake" w menu "Kompilacja" i ustawisz tryb kompilacji na zwolnienie, zobaczysz, że przekazuje "CONFIG + = release" jako argument do qmake. Ponieważ CONFIG może już zawierać "debugowanie" (albo dlatego, że umieściłeś to w pliku projektu samodzielnie, albo może pochodzić z pliku mkspec), musi istnieć sposób na przesłonięcie go. Dlatego istnieje zasada "pojawia się jako ostatnia w CONFIG". Przykład, który podałem, był właśnie taki; przykład. Nie ma sensu dodawać "uwolnienia" i "debugowania" do KONFIGURACJI. –