Как собрать QT из исходного кода - PullRequest
21 голосов
/ 07 августа 2009

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

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

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


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

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

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

configure -prefix builddir -platform win32-msvc2005
nmake install

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

Ответы [ 4 ]

15 голосов
/ 08 августа 2009

По сути, вам просто нужно запустить 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, рекомендуется Perl ActiveState.

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

0 голосов
/ 04 апреля 2012

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

0 голосов
/ 09 октября 2009

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

0 голосов
/ 07 августа 2009

IIRC в Windows, вам нужно установить «песочницу», вы не можете выполнить типичную для UNIX «make install».

Обычно есть две опции для сборки Qt, -prefix-install и -prefix / foo

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

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

...