Как построить 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 не были скопированы в мой сборщик, что является еще одной проблемой.
Ответы
Ответ 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.