Компиляция 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)