Компиляция Qt 4.8.x для Visual Studio 2012

Какие шаги следует предпринять для компиляции Qt (версия 4.8.x) для Visual Studio 2012?

Я уже внимательно следил за инструкциями в принятом ответе этого вопроса (который для VS 2010), но модуль WebKit не удалось скомпилировать (я не уверен если сообщение об ошибке было зарегистрировано где угодно во время компиляции).

Я также видел этот вопрос, который спрашивает об этом, но для VS 2012 RC (вот почему я думал, что это не будет дублировать вопрос). Кроме того, ответчик говорит, что он составил Qt для VS 2011 Beta, поэтому вероятность того, что он может не работать в VS 2012 (окончательная первоначальная версия). Компиляция занимает много времени, поэтому я еще не пробовал ее.

По крайней мере одна проблема, которую я понял, заключается в том, что в Qt\mkspecs нет каталога win32-msvc2012. Должен ли я просто создать этот каталог и скопировать файлы из win32-msvc2010, возможно, с некоторыми изменениями?

Еще один вопрос: должен ли я внести некоторые изменения в источники Qt перед началом компиляции.

Ответы

Ответ 1

Qt 4.8.3 с Visual Studio 2012 x64 (также должен работать с 4.8.2)

  • Установите Strawberry Perl

  • Загрузите исходный код Qt 4.8.3 из http://qt-project.org/downloads

  • Перейдите к mkspecs\win32-msvc2010. Откройте qmake.conf и измените:

    QMAKE_COMPILER_DEFINES  += _MSC_VER=1600 WIN32
    

    в

    QMAKE_COMPILER_DEFINES  += _MSC_VER=1700 WIN32
    
  • Замените qt-everywhere-opensource-src-4.8.3-x64\src\3rdparty\webkit\Source\JavaScriptCore\wtf\HashSet.h на этот HashSet.h.

  • Запустите "VS2012 x64", "Командная строка"

  • Перейдите в исходный каталог Qt 4.8.3 (каталог, содержащий configure.exe)

  • Run:

    configure -mp -opensource -nomake demos -nomake examples -platform win32-msvc2010
    
  • Далее следуют:

    nmake
    

Я запрограммировал инструмент BlueGo, который автоматически загружает Qt 4.8.3 и строит его с помощью VS2012 x64: http://bluego.vertexwahn.de (также работает с VS2010 x64) (это просто делает то, что я описал выше автоматически)

Ответ 2

Qt 4.8.4 требует меньше настроек, чем описано выше Vertexwahn.

  • HashSet все еще должен быть исправлен (см. fix Vertexwahn) после того, как Qt извлечен из архива.
  • Платформа win32-msvc2012 поддерживается в автономном режиме (также работает на 64-битной в 64-битной среде, не спрашивайте, почему они называют ее Win32).

Так просто замените HashSet.h и скомпилируйте.

Ответ 3

Просто создание каталога win32-msvc2012 с приведенными ниже изменениями не сработало для меня, требуется больше редактирования. То, что именно необходимо, описано в потоке, который вы уже связали.

Что я сделал, я пошел на win32-msvc2010.

Там, откройте qmake.conf и измените

QMAKE_COMPILER_DEFINES + = _MSC_VER = 1600 WIN32

к

QMAKE_COMPILER_DEFINES + = _MSC_VER = 1700 WIN32

Затем я мог бы настроить с помощью win32-msvc2010.

Кроме того, я использовал эти изменения: http://qt-project.org/forums/viewthread/17771 (версия alzi)