Название: Сборка qt в другую папку Отправлено: flame от Март 12, 2011, 23:21 Подскажите, никак не могу разобраться как мне статически собрать QT в другую папку. Я хочу чтобы я мог в creator'e выбирать сборку статически и динамически. Чтобы так можно было делать нужно иметь две разных библиотеки кт - динамическую и статическую. пытаюсь собрать динамическую в отдельную папку.
Порядок действий: 1. Ставлю qt-sdk-win-opensource-2010.05.exe в C:\Qt\2010.05 2. Запускаю Qt Command Prompt из меню пуск 3. C:\Qt\2010.05\qt>configure -static -prefix C:\Qt\static 4. C:\Qt\2010.05\qt>mingw32-make на это он мне выводит: C:/Qt/2010.05/qt/bin/qmake C:/Qt/2010.05/qt//projects.pro -o Makefile -spec win32-g++ Could not find mkspecs for your QMAKESPEC(win32-g++) after trying: C:/Qt/123\mkspecs Error processing project file: C:/Qt/2010.05/qt//projects.pro mingw32-make: *** [all] Error 3 откуда он берет этот двойной слэшь - C:/Qt/2010.05/qt//projects.pro ??? Я попробовал положить папку C:\Qt\2010.05\qt\mkspecs в C:\Qt\123\mkspecs, тогда он начинает собирать, но собирает вовсе не в C:\Qt\123\, а туда где он установлен, и собирает с ошибками. как же всетаки быть? 1. Установить сдк в другую папку и там уже собрать статически? Запускать 2 разных creator'a? 2. читал что сдк плох для пересборки, и нужно скачать исходники и из них уже собирать? 3. Проще таскать с собой библиотеки в папке с экзешником? Система - Вин ХП сп3 если же собирать вот таким порядком действий: 1. Запускаю Qt Command Prompt из меню пуск 2. C:\Qt\2010.05\qt>configure -static -release 3. C:\Qt\2010.05\qt>mingw32-make т.е. без указания пути куда собирать, то все собирается нормально, но пропадает возможность динамической сборки. К тому же: если выбираю в creator'e сборку под релиз то все собирается нормально статически и работает, эекзешник выростает чуть чуть в размере если выбираю дебаг, то экзешник разростается до 150 метров :o как так?:) Название: Re: Сборка qt в другую папку Отправлено: lit-uriy от Март 13, 2011, 08:36 чтобы собирать что-то в другой папке, по сравнению с папкой исходников, нужно:
перейти в "другую папку" в ней командовать команды. применительно к Qt: 1) каталог mkspecs трогать руками не надо (как это вообще в голову пришло?). 2) идём в "другую папку" 3) в ней командуем: путь/к/исходникам/configure .... 4) ещё командуем: путь/к/исходникам/mingw32-make П.С. это называют "теневая" сборка Название: Re: Сборка qt в другую папку Отправлено: flame от Март 13, 2011, 09:27 Спасибо, сейчас попробую.
Цитировать 1) каталог mkspecs трогать руками не надо (как это вообще в голову пришло?). да я знаю что недолжно быть такого, просто увидел строки нот фаинд ))) и решил попробоватьCould not find mkspecs for your QMAKESPEC(win32-g++) after trying: C:/Qt/123\mkspecs Название: Re: Сборка qt в другую папку Отправлено: flame от Март 13, 2011, 10:52 Вылезло вот такое:
C:\Qt\Static>C:\Qt\2010.05\qt\configure -static -fast Error: Creating a shadow build of Qt requires perl to be in the PATH environment гуглил, вроде можно поставить актив перл. или можно еще как то? Название: Re: Сборка qt в другую папку Отправлено: flame от Март 13, 2011, 11:03 попробовал сделать как тут написано: http://www.prog.org.ru/topic_11168_0.html
Но он всеравно недает запустить конфигуре из нового каталога. попробую поставить активперл Поставил, добавил в батник путь до перл.ехе, запустил, вроде конфигурится :) Название: Re: Сборка qt в другую папку Отправлено: flame от Март 13, 2011, 17:47 ничего не получается :-[
1) Qt Command Promt (добавил перл в батник) Setting up a MinGW/Qt only environment... -- QTDIR set to C:\Qt\2010.05\qt -- PATH set to C:\Qt\2010.05\qt\bin -- Adding C:\Qt\2010.05\bin to PATH -- Adding C:\Perl\bin to PATH -- Adding C:\WINDOWS\System32 to PATH -- QMAKESPEC set to win32-g++ 2) C:\Qt\2010.05\qt>cd C:\Qt\111 3) C:\Qt\111>C:\Qt\2010.05\qt\configure -static -release -nomake demos -nomake example 4) C:\Qt\111>C:\Qt\2010.05\mingw\bin\mingw32-make 5) c:\Qt\2010.05\qt\src\corelib\global\qglobal.cpp:3027: warning: 'static bool QInternal::activateCallbacks(QInte rnal::Callback, void**)' redeclared without dllimport attribute: previous dllimport ignored c:\Qt\2010.05\qt\src\corelib\global\qglobal.cpp:3044: warning: 'static bool QInternal::callFunction(QInternal: :InternalFunction, void**)' redeclared without dllimport attribute: previous dllimport ignored c:\Qt\2010.05\qt\src\corelib\global\qglobal.cpp:2566: warning: 'SeedStorage* randTLS()' defined but not used mingw32-make[2]: *** [tmp/obj/release_static/qglobal.o] Error 1 mingw32-make[2]: Leaving directory `C:/Qt/111/src/corelib' mingw32-make[1]: *** [release] Error 2 mingw32-make[1]: Leaving directory `C:/Qt/111/src/corelib' mingw32-make: *** [sub-corelib-make_default-ordered] Error 2 И еще куча таких ворнингов... что делать? ??? Название: Re: Сборка qt в другую папку Отправлено: lit-uriy от Март 13, 2011, 20:10 вот мой батник создающий окружение:
Код Перл брал отсюда: ActiveState.com. П.С. И для сборки яб использовал просто архив с исходниками, а не SDK П.П.С. Для Qt >=4.6, MinGW должен содержать компиллер >=4.4 ссылка: ftp://ftp.trolltech.com/misc/MinGW-gcc440_1.zip (учти, форум лепит http лишнее) Название: Re: Сборка qt в другую папку Отправлено: flame от Март 13, 2011, 21:22 Спасибо Юрий, буду разбираться завтра!
|