Sto sviluppando un programma in Qt. Il suo makefile viene generato automaticamente dal file .pro. Ho bisogno di usare del codice che ha bisogno del flag -std = c ++ 11 per essere configurato per g ++. Dove in .pro dovrei aggiungere questo flag? (cambiando solo il Makefile non funzionerà poiché viene sovrascritto da quello appena generato, ogni volta che costruisco il progetto).
È ansible aggiungere quanto segue al Qt .pro per C ++ 11: –
CONFIG += c++11
A partire da Qt 5.4, è ansible abilitare C ++ 14
CONFIG += c++14
Puoi cambiare le bandiere CXX:
QMAKE_CXXFLAGS += -std=c++11
Di solito l’ho impostato come:
QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic
Potresti trovare allettante inserire la bandiera specifica (che menzioni)
QMAKE_CXXFLAGS += -std=c++11
nel tuo file .pro, ma questo inserirà solo quella bandiera per tuo conto.
Questo è insufficiente. Il modo giusto è inserire invece
CONFIG += c++11
nel tuo profilo. Due o tre modifiche necessarie vengono quindi eseguite da qmake
:
-std=c++11
è inserito. -stdlib=libc++
è inserito. -mmacosx-version-min=10.6
diventa -mmacosx-version-min=10.7
. (Forse alcune modifiche simili sono necessarie su altri sistemi operativi o versioni del sistema operativo.) (Un problema simile a 1 e 2 ).
Sto usando Snow Leopad 10.6.8 e gcc 4.9, che ho dovuto usare
CONFIG += c++11
invece di
QMAKE_CXXFLAGS += -std=c++11
Quest’ultimo è stato semplicemente non riconosciuto.
CONFIG += c++11
nel file .pro sembra funzionare per me con l’SDK Qt4 dopo aver installato qt5-default sul desktop di Ubuntu:
sudo apt install qt5-default
Ad ogni modo il makefile generato contiene l’ -std=c++0x
che sospetto sia sufficiente per compilare il mio codice C ++ 11.