2009-08-07 1 views
20

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

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

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


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

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

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

configure -prefix builddir -platform win32-msvc2005 
nmake install 

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

+0

Можно ли использовать с помощью cmake? –

+0

Это описывает сборку вне источников для Qt: http://www.holoborodko.com/pavel/2011/02/01/how-to-compile-qt-4-7-with-visual-studio-2010/# comment-6641 – Dan

ответ

0

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

Есть два варианта, как правило, для создания Qt, -prefix установить и -prefix/Foo

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

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

+0

Какая программа '-prefix-install' и' -prefix/path' являются параметрами? Они не упоминаются в выводе 'configure.exe --help' –

+0

Я написал этот ответ 16 месяцев назад. Возможно, изменилась настройка Qt. – mxcl

14

В принципе, вам просто нужно запустить 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).

+0

Это не работает. Ошибка говорит, что он не может содержать некоторый .h-файл – user152508

+0

Какая ошибка и откуда вы взяли исходники? – rohanpm

+0

Ошибка при настройке времени, и она говорит, что она не может включать некоторые qscriptengine.h. Также в моей попытке каталог сборки не был на том же уровне, что и исходный каталог (например, в вашем праймере выше). Это важно? – user152508

0

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

0

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