C ++ Qt – Come aggiungere “-std = c ++ 11” al makefile generato da qmake?

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 :

  1. -std=c++11 è inserito.
  2. -stdlib=libc++ è inserito.
  3. Se sei su un Mac, -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.