Как включить C++11 в Qt Creator?
название говорит само за себя. Я загрузил Qt Creator 2.7.0, и я пытаюсь скомпилировать некоторый базовый код C++11:
int my_array[5] = {1, 2, 3, 4, 5};
for(int &x : my_array)
{
x *= 2;
}
Я получаю следующее сообщение об ошибке:
range based for loops are not allowed in c++ 98 mode
однако, по данным в этой статье эта версия Qt Creator поддерживает C++11. Так как же мне его включить?
6 ответов:
По данным этот сайт добавить
CONFIG += c++11
в ваш файл. pro (см. Внизу этой веб-страницы). для этого требуется Qt 5.
другие ответы, предложив
QMAKE_CXXFLAGS += -std=c++11
(илиQMAKE_CXXFLAGS += -std=c++0x
)также работы с Qt 4.8 и gcc / clang.
в качестве альтернативы для обработки обоих случаев, рассмотренных в отличном ответе Али, я обычно добавляю
# With C++11 support greaterThan(QT_MAJOR_VERSION, 4){ CONFIG += c++11 } else { QMAKE_CXXFLAGS += -std=c++0x }
мои файлы проекта. Это может быть удобно, когда вы не очень заботитесь о том, какую версию Qt используют люди в вашей команде, но вы хотите, чтобы они в любом случае включили C++11.
единственное место, где я успешно сделать его работу, это поиск в ...\Qt\{5.9; или ваша версия}\mingw{53_32; или ваша версия}\mkspecs\win32-g++\qmake.conf:
затем на линии: QMAKE_CFLAGS += -ФНО-сохранить-рядные с атрибутом dllexport
изменить : QMAKE_CFLAGS += -ФНО-сохранить-рядные с атрибутом dllexport -с std=с++11
эффекты немедленно! :)