2011-10-13 12 views
41

Ho un file qmake generato da Qt creatore. Lo sto modificando ma non riesco a capire come creare una variabile.QMake - Come aggiungere e utilizzare una variabile nel file .pro

per esempio voglio dichiarare la MYPATH biblioteca come ho fatto qui:

MYPATH = /lib/aaa/bbb 
unix:!macx:!symbian: LIBS += -L$(MYPATH) 

quando ho eseguito qmake trovo nel generato makefile

LIBS = ....... -L$(MYPATH) ..... 

ma la variabile MYPATH non è dichiarata da nessuna parte .

Qualcuno sa come dichiarare correttamente tale variabile?

risposta

86

QMake utilizza its own syntax for variable references.

  • VAR = foobar => Assegnazione valore variabile quando qmake viene eseguito
  • $$VAR => QMake valore della variabile al momento qmake viene eseguito
  • $${VAR} => QMake valore della variabile al momento qmake viene eseguito (identico ma chiusa per separare dal testo circostante)
  • $(VAR) => Contenuti di una variabile di ambiente al momento Makefile (non qMake) viene eseguito
  • $$(VAR) => Contenuti di una variabile di ambiente al t ime qmake (non Makefile) è gestita

Prova in questo modo

MYPATH = /lib/aaa/bbb 
unix:!macx:!symbian: LIBS += -L$${MYPATH} 
+8

Non dimenticare $$ (VAR) per il contenuto di una variabile di ambiente al momento qnake (non Makefile!) Viene eseguito – fawick

+2

Quindi, qual è la differenza sottile tra '$$ VAR' e' $$ {§ VAR} '? Ho osservato ogni spiegazione e non riesco a trovare una sola differenza ... o.0 –

+6

@ AdriC.S. Credo che siano esattamente gli stessi. '$$ {VAR}' esiste per risolvere casi come 'lib $$ VERSION.dll'. senza metterlo tra parentesi graffe 'lib $$ {VERSION} .dll', la variabile non si risolve perché non è seguita da uno spazio o una barra. –

14

Altri utili tipo di variabile: $$[...] Ciò significa "opzione di configurazione che sono state impostate quando Qt stato costruito"

Esempio :

message($$[QT_INSTALL_BINS]) 

Questo dà:

C:\Qt\Qt5.0.2\5.0.2\msvc2010_opengl\bin 
Problemi correlati