2011-04-29 9 views
19

Eventuali duplicati:
Configuring the GCC compiler switches in Qt, QtCreator, and QMakeCXXFLAGS modifica dal mio file .pro

Vorrei utilizzare -O1 invece di -O 2 nel mio makefile (CFLAGS e CXXFLAGS) per la mia generazione Linux ma la mia comprensione di come questi makefile sono generati in base al file .pro è piuttosto carente. Questo perché la versione di Qt combinata con la versione di G ++ che sto usando ha instabilità quando è presente -O2.

Attualmente, sto facendo funzionare uno script di sostituzione, dopo corro qmake, che fa questo:

sed -i 's/\-O2/\-O1/g' AllProjects/Makefile.Release 

Si tratta di una soluzione di ghetto. Una soluzione molto migliore sarebbe quella di modificare il file .pro in qualche modo per passare lungo queste direttive. Non sono sicuro di come vengano generati CFLAGS e CXXFLAGS, e ho pensato di chiedere a StackOverflow.

ho provato passando un

linux-g++-{ 
     CFLAGS += -O1 
     CXXFLAGS += -O1 
     CONFIG += -O1 
} 

che non ha funzionato.

+2

+1 una "soluzione ghetto" – sehe

+0

linux-g ++ - { QMAKE_CXXFLAGS + = -O1 } non funziona, linux-g ++ - { QMAKE_CXXFLAGS_RELEASE + = -O1 } inoltre non funziona, avrei dovuto dire che ho provato questo nella mia soluzione. –

+0

Sto pensando che il mio assegno sia un po 'troppo stretto, dal momento che sembra che QMAKE_CXXFLAGS DOVREBBE funzionare. –

risposta

24

Eri molto vicino. Quello che vuoi è:

QMAKE_CXXFLAGS += -O1

Se si desidera applicare le bandiere a poco la build di rilascio, quindi è possibile utilizzare questo:

QMAKE_CXXFLAGS_RELEASE += -O1

È inoltre probabilmente vuole cambiare la sua condizione essere un po 'più flessibile In sintesi, qualcosa di simile:

*-g++* { 
    QMAKE_CXXFLAGS += -O1 
} 

più nella documentazione qui: http://qt-project.org/doc/qt-5.0/qtdoc/qmake-variable-reference.html#qmake-cxxflags

+0

Grazie, anche la mia bandiera era troppo stretta, esattamente come mi hai suggerito. –

+1

@Brian: sì, hai avuto un trattino finale che l'ha ucciso. –

+1

Se il flag che stai impostando riguarda anche il collegamento, dovrai anche impostare ad es. QMAKE_LFLAGS + = -m32 – iforce2d

Problemi correlati