Qt Creator 2.6.1 + Qt 5 + C ++ 11 + MSVC2010 compiler

Я пытаюсь собрать приложение C ++ для Windows, используя Qt.

Моя настройка:

  1. Установлено Vs2008,2010,2012
  2. Установил Qt 5 RC1

Теперь, когда я #include и пытаюсь использовать std :: unique_ptr, он говорит мне, что он не определен, поэтому я посмотрел в заголовках VS2010 и увидел, что необходимо определить _HAS_CPP0X, поэтому я добавил его в .pro как DEFINES + = _HAS_CPP0X

Это все еще не имело никакого эффекта, поэтому я щелкнул Ctrl + по памяти #include только для того, чтобы найти ее, используя заголовок памяти из:

C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ VC \ include

Который действительно не имеет никакого std :: unique_ptr там!

Наверняка стоит посмотреть на:

C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ include?

Я подумал, что включу память через полный путь, но это все равно не удастся с ошибками в самом заголовке включенной памяти, связанном с такими вещами C ++ 11, как ссылки move и rvalue.

Итак, что я хотел бы знать, это:

  1. Может ли Qt в Windows использовать функции C ++ 11, поддерживаемые Vs2010?
  2. Если да, то как?
  3. Если нет, то я очень разочарован тем, что разработка кроссплатформенного приложения Qt 5 для Linux означает, что он не кроссплатформенный, поскольку его невозможно собрать для любых других платформ!

Редактировать:

Решение этой проблемы очевидно: скачайте исходный код Qt5 и соберите его с помощью MinGW, и все будет готово (включая опцию C ++ 11 pro в принятом ответе).

4

Решение

Вы можете просто поставить:

CONFIG += c++11

в вашем .pro файле. Но обновление вашего компилятора до недавнего g++ или же clang настоятельно рекомендуется.

2

Другие решения

Я использую QT Creator 2.6.0, поэтому при условии, что меню параметров не изменилось, если вы перейдете в Сервис> Параметры> Построить & Бежать а затем искать Составители На вкладке вы должны увидеть список автоматически обнаруженных компиляторов, включая Компилятор Microsoft Visual C ++ 10.0. Если нет, то его можно добавить вручную.

Что касается поддержки C ++ 11, если вы используете cmake и импортировали проект в QT Creator как таковой, вы можете добавить это в свой файл cmake: set (CMAKE_CXX_FLAGS «-std = c ++ 0x»)

Если вы используете qmake, то по руководство установить QMAKE_CXXFLAGS + = -std = c ++ 0x

Редактировать:
При этом Visual Studio 2010 (Visual C ++ 10.0) по умолчанию включает поддержку c ++ 11, хотя следует отметить, что это только подмножество, здесь вопрос.

0

НЕТ

Может ли Qt в Windows использовать функции C ++ 11, поддерживаемые Vs2010?

Вы должны получить Visual 2012 для этого.

Если нет, то я очень разочарован тем, что разработка кроссплатформенного приложения Qt 5 для Linux означает, что он не кроссплатформенный, поскольку его невозможно собрать для любых других платформ!

На Mac используйте компилятор XCode 4 CLang 2, а на любой платформе работает компилятор, основанный на GCC 4.7.

-1
По вопросам рекламы [email protected]