qt c++11 makefile qmake

C++ Qt-¿Cómo agregar "-std=c++ 11" al archivo MAKE generado por qmake?



c++11 makefile (5)

Estoy desarrollando un programa en Qt. Su archivo MAKE se genera automáticamente desde el archivo .pro. Necesito usar algún código que necesite la bandera -std = c ++ 11 para ser configurada para g ++. ¿Dónde en .pro debo agregar esta bandera? (Cambiar solo el Makefile no funcionará, ya que es sobreescrito por el nuevo, cada vez que construyo el proyecto).


Estoy usando Snow Leopad 10.6.8 y gcc 4.9, tuve que usar

CONFIG += c++11

en lugar de

QMAKE_CXXFLAGS += -std=c++11

Este último simplemente no fue reconocido.


Puede agregar lo siguiente a Qt .pro para C ++ 11: -

CONFIG += c++11

A partir de Qt 5.4, C ++ 14 se puede habilitar con

CONFIG += c++14


Puede resultar tentador insertar la bandera específica (que mencionas)

QMAKE_CXXFLAGS += -std=c++11

en su archivo .pro, pero esto insertará solo esa bandera en su nombre.

Eso es insuficiente. La forma correcta es insertar en su lugar

CONFIG += c++11

en tu perfil. Dos o tres cambios necesarios son hechos por qmake :

  1. -std=c++11 está insertado.
  2. -stdlib=libc++ se inserta.
  3. Si estás en una Mac, -mmacosx-version-min=10.6 convierte en -mmacosx-version-min=10.7 . (Tal vez sea necesario algún cambio similar en otros sistemas operativos o versiones del sistema operativo).

(Un problema similar en 1 y 2 )


Puedes cambiar las banderas CXX:

QMAKE_CXXFLAGS += -std=c++11

Por lo general, lo configuro como:

QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic


CONFIG += c++11

en el archivo .pro parece funcionar para mí con el Qt4 SDK después de instalar qt5-default en mi escritorio de Ubuntu:

sudo apt install qt5-default

De todos modos, el archivo MAKE generado contiene una -std=c++0x . Sospecho que es suficiente para compilar mi código C ++ 11.