Russian Qt Forum
Ноябрь 23, 2024, 07:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Стандарт C++11 под Qt Creator не работает  (Прочитано 17759 раз)
yarick
Гость
« : Январь 03, 2013, 00:12 »

Я хочу использовать нововведения стандарта С++11 - очень уж хороши auto, списки инициализации и прочее.
У меня установлен QtCreator 2.4.1 и я пользуюсь Qt 4.8
Специально установил самый новый minGW, включающий С++
В командной строке
C:\Users\Ярослав>gcc --version
gcc (GCC) 4.7.2

Т.е. компилятор GCC установлен, и здесь http://gcc.gnu.org/projects/cxx0x.html заявлено что он поддерживает (большей частью, хоть и экспериментально) c++11

В pro добавил QMAKE_CXXFLAGS="-std=gnu++11"
Однако он выдаёт ошибку
Цитировать
cc1plus.exe: error: unrecognized command line option "-std=gnu++11"

Причём я вручную чистил проект от make-файлов, объектных и прочих, перекомпилировал с чистого pro - всё равно ошибка.
Если заменить на -std=gnu++0x, то выдаёт тонну ошибок типа ошибки сегментации во время компиляции, ошибки в ядре Qt и прочего. Но это не вариант, стандарт с++11 должен поддерживаться...

Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Январь 03, 2013, 00:18 »

кавычки убери. и поставь свежий креатор (на компиляцию это конечно не повлияет, а вот на подсветку кода — да).
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #2 : Январь 03, 2013, 08:46 »

И Qt еще этим компилятором собери, а то работать не будет с предкомпилленым с сайта.
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
yarick
Гость
« Ответ #3 : Январь 04, 2013, 21:24 »

Ещё такой вопрос знающим людям - а стоит ли переходить на новый стандарт, не вызовет ли это проблем с переносом программы на Линукс\Мак? Там тоже компилироваться будет без проблем?
И вообще какие проблемы могут возникнуть?
Записан
Dancing_on_water
Гость
« Ответ #4 : Январь 04, 2013, 21:56 »

В плане компиляции особых быть не должно.

Список поддерживаемых фич:
clang: http://clang.llvm.org/cxx_status.html
gcc 4.8: http://gcc.gnu.org/gcc-4.8/cxx0x_status.html
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #5 : Январь 04, 2013, 23:27 »

QMAKE_CXXFLAGS += -std=gnu++11
Записан
yarick
Гость
« Ответ #6 : Январь 05, 2013, 14:21 »

Действительно, пришлось скачать исходники Qt библиотек и полностью пересобрать, ушло часов 5. И QtCreator тоже был вынужден пересобрать, т.к. он видимо при запуске exe-шника "по зелёной кнопочке" использовал старые библиотеки, а из проводника всё запускалось.
И тогда, добавив опцию QMAKE_CXXFLAGS += -std=gnu++11 дейстительно стали работать плюшки из С++11, которые я хотел. Спасибо. Надеюсь что использование новейшего стандарта плюсов также добавит моему проекту уважение...
Записан
p166
Гость
« Ответ #7 : Январь 30, 2014, 12:38 »

QMAKE_CXXFLAGS += -std=gnu++11

Помогло, спасибо.
Записан
twp
Гость
« Ответ #8 : Январь 30, 2014, 17:47 »

Вот небольшие статьи по С++11 в Qt:
Для 4.8: http://blog.qt.digia.com/blog/2011/05/26/cpp0x-in-qt/
Для 5: http://woboq.com/blog/cpp11-in-qt5.html
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.072 секунд. Запросов: 22.