Как установить компилятор Visual Studio 2012 RC для Qt вместо MinGW?

Windows 8 x86; Qt 4.8.2; Visual Studio Ultimate 2012 RC

1 ответ

Решение

Насколько я знаю, Qt еще не поддерживает Visual Studio 2012 RC. Однако мне удалось собрать Qt 4.8 с бета-версией Visual Studio 2011 (предшественник Visual Studio 2012 RC - они просто решили его переименовать). Требуется внести некоторые изменения в исходный код Qt перед компиляцией. Вот шаги, которые я использовал:

  • Скопируйте mkspecs/win32-msvc2010 в mkspecs/win32-msvc2012 и отредактируйте файл qmake.conf, указав _MSC_VER=1700.
  • Ищите "msvc2010" во всех файлах в извлеченном каталоге и исправьте ~10 мест, чтобы также понять "msvc2012"
  • В командной оболочке Visual Studio перейдите в раздел tools / configure, запустите предыдущую версию qmake (которая вам уже нужна), а затем запустите nmake, чтобы обновить файл configure.exe.
  • Выполните поиск "make_pair<" во всех файлах и удалите аргументы шаблона.
    • Это может не потребоваться в VS 2012; в VS 2011-beta я получил ошибки компиляции с make_pair, когда были указаны аргументы шаблона.
  • В src\3rdparty\javascriptcore\JavaScriptCore\runtime\Structure.{H,cpp} измените вызовы make_pair на явные вызовы конструктора JSC::StructureTransitionTableHash::Key.
  • Отредактируйте src\3rdparty\clucene\src\CLucene\config\define_std.h, чтобы закомментировать _CL_HAVE_HASH_MAP и _CL_HAVE_HASH_SET
  • В командной оболочке Visual Studio запустите программу configure, которая устанавливается вместе с источником, например: configure.exe -debug-and-release -platform win32-msvc2012 -opensource
    • [Необязательно] добавьте '-nomake demos -nomake examples' в командную строку для экономии времени сборки и / или '-mp' для параллельной сборки
  • После завершения настройки введите nmake, чтобы начать сборку. Это позволит создавать отладочные и выпускные версии всех библиотек, а также выпускные версии всех инструментов (дизайнера и т. Д.).

Это заняло немного работы, но это сработало для меня, и теперь у меня есть десятки приложений Qt, запущенных и запущенных, поэтому я решил поделиться с кем-то еще, кто хочет собрать Qt 4.8.x на Visual Studio 11 (Visual Studio 2011 beta или Visual Studio 2012 RC.)

Если это кажется слишком сложным, просто подождите немного; Я уверен, что Qt скоро будет поддерживать Visual Studio 2012.

Другие вопросы по тегам