2013-02-25 3 views
1

Я хочу собрать QT статически, я сделал следующие шаги:компилировать QT статически

1) настроить -static -debug -opensource

2) NMake суб-Src, но на этом этапе у меня есть некоторые ошибки как

D: \ Qt \ Bin \ rcc.exe -name MIMETYPES D: \ Qt-всюду с открытым исходным кодом-Src-5.0.1 \ qtbase \ SRC \ corelib \ MIMETYPES \ mimetypes.qrc -o .rcc \ debug_static \ qrc_mimetypes.cp p 'D: \ qt \ bin \ rcc.exe' не распознается как внутренняя или внешняя команда, работоспособная програ m или командный файл. NMAKE: фатальная ошибка U1077: 'D: \ qt \ bin \ rcc.exe': код возврата '0x1' Стоп. NMAKE: фатальная ошибка U1077: '' C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ VC \ BIN \ nmake.exe "': код возврата' 0x2 ' Стоп. NMAKE: фатальная ошибка U1077: 'cd': код возврата '0x2' Стоп. NMAKE: фатальная ошибка U1077: 'cd': код возврата '0x2' Стоп.

Что мне делать?

ответ

1

Прежде чем пытаться компилировать Qt 5.x, вам, возможно, потребуется установить некоторые библиотеки (в зависимости от модулей, которые вы хотите скомпилировать):

  • ActivePerl (** необходимо, так как он используется для настройки qtsdk)
  • Microsoft Windows SDK 7.1
  • Microsoft DirectX SDK
  • Python
  • ICU
  • ...

Если вы планируете использовать библиотеку (например, Assimp, например), которые внутренне используют одни и те же библиотеки (например, Zlib), возможно, придется переписать эти библиотеки, расположенные в qtbase \ SRC \ 3rdparty подразделам -directories, с их последними версиями.

Редактировать файл configure.bat, расположенный в qtbase каталог, и закомментируйте строку 45:
::if not exist %QTSRC%\.gitignore goto sconf

Редактировать файл QMAKE.конф, расположенный в qtbase \ mkspecs \ win32-msvc2010 (если вы используете Visual Studio 2010) или в qtbase \ mkspecs \ win32-msvc2012 (если вы используете Visual Studio 2012):

  • линия 9: CONFIG += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target
  • строка 23: QMAKE_CFLAGS_RELEASE = -O2 -MT
  • линия 24: QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
  • строка 25: QMAKE_CFLAGS_DEBUG = -Zi -MTd

Запустите Командная строка Visual Studio: Начало > Программы > Microsoft Visual Studio 20XX > Инструменты Visual Studio.
Убедитесь, что путь к perl.exe в PATH переменной в среды: PATH=%PATH%;C:\Perl\bin (или PATH=%PATH%;C:\Perl64\bin при компиляции для x64).

Идём в qtbase в список: CD \Qt\5.0.1\qtbase.

Настройка Qt для компиляции статически отладки и выпуска версии:

  • configure -developer-build -opensource -confirm-license -platform win32-msvc2010 -mp -nomake examples -nomake tests -static (если вы используете Visual Studio 2010)
  • configure -developer-build -opensource -confirm-license -platform win32-msvc2012 -mp -nomake examples -nomake tests -static (если вы используете Visual Studio 2012)
Примеры и тесты могут скомпилированы позже, если они вам понадобятся.
Если вы планируете использовать OpenGL, добавьте -opengl desktop в командную строку, иначе Qt будет использовать по умолчанию OpenGL/ES, предназначенный для мобильных устройств.
Если ваш процессор не поддерживает многоядерность, удалите опцию -mp.

Вернитесь в родительский каталог: CD ...

Настройка снова Qt: configure -developer-build -opensource -confirm-license -platform win32-msvc20 XX -opengl desktop -mp -nomake examples -nomake tests -static
(я не уверен, что этот шаг необходим, но это занимает всего несколько секунд ...).

Скомпилировать: nmake.

Другим методом компиляции является использование jom и указание количества ядер ЦП для использования: C:\Qt\jom\jom.exe -j #NUMBER_OF_CORES#.

Вы найдете скомпилированные статические библиотеки в qtbase \ Lib папки и файлы для включения в подкаталогах qtbase \ включает.
Чтобы использовать их, вам понадобится use static run-time libraries (/MT или /MTd) в проекте Visual C++.

Смежные вопросы