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
:
-
-std=c++11
está insertado. -
-stdlib=libc++
se inserta. - 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).
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.