Подтвердить что ты не робот

Как построить qt из источника

Я много искал через Qt-форумы и Google в течение последних нескольких дней, но я не мог найти явного ответа на этот вопрос.

Я нашел параметр -prefix (даже не документированный в Windows), который может быть предоставлен для настройки, чтобы указать другой каталог установки, но это не явное разделение источников и двоичных файлов вообще, так как сборка все еще выполняется в исходный каталог, а затем файлы, необходимые для установки, копируются в установочный каталог. Я попробовал эту опцию -prefix и пришел к некоторым проблемам. (т.е. он не копирует файлы .pdb в каталог установки.)

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


Я предполагаю, что вы не пытались сделать установить? Так что попробуй. Должно установить Qt в отдельный каталог от источников.

Вы говорите, что после того, как я настроюсь, я должен сделать nmake вместо просто nmake? Я знаю, что nmake обработает сгенерированные make файлы из qmake и поместит их в исходный Qt файл, но то, что будет делать nmake, будет именно то, в каком каталоге будут установлены файлы, и как указать каталог, в котором будут установлены файлы.

Обратите внимание, что я уже делаю это:

configure -prefix builddir -platform win32-msvc2005
nmake install

Эффект этих двух строк заключался в том, что qt был скомпилирован в исходном каталоге, а не непосредственно в моем builddir, указанном с префиксом. Затем скомпилированные файлы были скопированы в мой builddir. Я надеялся на что-то, что будет строить мои файлы Qt непосредственно в каталоге dir, так как мне понадобится 4 Гб для моего исходного каталога во время компиляции. Также файлы pdb не были скопированы в мой сборщик, что является еще одной проблемой.

4b9b3361

Ответ 1

В принципе, вам просто нужно запустить configure.exe из каталога сборки. Например:

mkdir \qt\4.5.2-build
cd \qt\4.5.2-build
set PATH=%cd%\bin;%PATH%
\qt\4.5.2-sources\configure.exe -platform win32-msvc2005

Если источники находятся в \qt\4.5.2-sources, это приведет к тому, что сборка будет входить в \qt\4.5.2-build на текущем диске.

Кроме того, вы должны иметь perl в своем PATH, рекомендуется ActiveState Perl.

Я ранее не слышал об этом ограничении, когда сборки и исходные каталоги должны быть на одном уровне. Если вы столкнулись с этой проблемой, вы можете попробовать обойти ее, создав символическую ссылку (см. Команду mklink).

Ответ 2

IIRC в Windows, вам нужно выполнить установку "песочницы", вы не сможете выполнить UNIX-типичную "make install".

Существует два варианта создания Qt, -prefix-install и -prefix/foo

Вы выбираете один, поэтому, если -prefix не позволяет вам вводить make install, то, полагаю, в Windows вам нужно использовать маршрут -prefix-install, который является изолированной установкой в ​​каталоге, в котором вы извлекаете Qt.

Я предполагаю, что вы не пытались сделать установку? Так что попробуй. Он должен установить Qt в отдельный каталог вдали от источников.

Ответ 3

По крайней мере проблема с отсутствующими включенными файлами (например, qscriptengine.h) может быть решена путем временного добавления \qt\4.5.2-sources\include\Qt в путь включения.

Ответ 4

Я переместил теневую сборку из своей домашней папки в папку на C: и это сработало. Я знаю, что это странно, но что случилось. Я подозреваю, что это ошибка в syncqt.