Ho letto anche se HERE, eppure continuo a non capire la sintassi della variabile qmake CONFIG
. per esempio, se ho le seguenti impostazioni di configurazione nella mia .pro file
:qMake: come esattamente qmake interpreta la sintassi "CONFIG (debug, debug | release)"
CONFIG(debug, debug|release) {
message("debug mode")
}else {
message("release mode")
}
poi, durante l'esecuzione qmake
, il seguente sarà visualizzato nel Output compilazione in Qt-Creator:
Project MESSAGE: debug mode
Project MESSAGE: debug mode
Project MESSAGE: release mode
sapendo che sto costruendo il mio progetto in una "modalità debug" , quindi le mie domande sono:
- perché non viene visualizzato il messaggio "modalità di debug" solo? e perché non mostrarlo solo una volta?
- Quindi, poiché sto costruendo in una "modalità di debug", perché viene visualizzato il messaggio "Progetto MESSAGGIO: modalità di rilascio"?
- Esattamente, ciò che la sintassi: CONFIG (debug, debug | release) significa veramente? vuol dire che costruisci in una modalità di debug, poi di nuovo costruisci in una modalità di debug e infine costruisca in una modalità di rilascio? So che queste parentesi "{}" significa un scope ma come qmake interpretare cosa c'è dentro queste parentesi "()"?
Grazie mille per la risposta, è estremamente importante e utile. Tuttavia, non ho capito la parte della "valutazione della dichiarazione".hai detto che "CONFIG (debug, debug | release)" è true se CONFIG contiene debug etc ... "cosa intendi con" contains "? vuoi dire definito come in 'CONFIG + = debug'? in tal caso, dato che non ho una definizione del genere nel mio '.pro file', dove si trova questa definizione? .. un'altra cosa, hai anche definito questo: 'CONFIG + = rilascia debug release debug release debug', cosa significa definire" debug "e" release "come questo? – hashDefine
per favore, scusate anche le mie troppe domande perché non riesco a trovare nessuna fonte internet che la spieghi, per non parlare della vostra spiegazione è molto semplice, concisa e chiara. – hashDefine
@hashDefine Qt Creator può aggiungere "release" a CONFIG quando chiama qmake. Ad esempio, se selezioni "Esegui qmake" nel menu "Build" e hai impostato la modalità di generazione per il rilascio, puoi vedere che passa "CONFIG + = release" come argomento per qmake. Dato che CONFIG può già contenere "debug" in esso (o perché lo hai messo nel tuo file di progetto tu stesso, o potrebbe provenire da un file mkspec), ci deve essere un modo per sovrascriverlo. Questo è il motivo per cui esiste la regola "appare ultimo in CONFIG". L'esempio che ho dato è stato proprio questo; un esempio. Non è utile aggiungere "release" e "debug" alla CONFIG. –