Russian Qt Forum
Ноябрь 24, 2024, 09:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сборка qt в другую папку  (Прочитано 6025 раз)
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 метров  Шокированный как так?Улыбающийся
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Март 13, 2011, 08:36 »

чтобы собирать что-то в другой папке, по сравнению с папкой исходников, нужно:
перейти в "другую папку" в ней командовать команды.

применительно к Qt:
1) каталог mkspecs трогать руками не надо (как это вообще в голову пришло?).

2) идём в "другую папку"
3) в ней командуем:
 путь/к/исходникам/configure ....
4) ещё командуем:
 путь/к/исходникам/mingw32-make

П.С.
это называют "теневая" сборка
Записан

Юра.
flame
Гость
« Ответ #2 : Март 13, 2011, 09:27 »

Спасибо, сейчас попробую.

Цитировать
1) каталог mkspecs трогать руками не надо (как это вообще в голову пришло?).
да я знаю что недолжно быть такого, просто увидел строки нот фаинд ))) и решил попробовать

Could not find mkspecs for your QMAKESPEC(win32-g++) after trying:
        C:/Qt/123\mkspecs


« Последнее редактирование: Март 13, 2011, 09:30 от flame » Записан
flame
Гость
« Ответ #3 : Март 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

гуглил, вроде можно поставить актив перл. или можно еще как то?
« Последнее редактирование: Март 13, 2011, 11:00 от flame » Записан
flame
Гость
« Ответ #4 : Март 13, 2011, 11:03 »

попробовал сделать как тут написано: http://www.prog.org.ru/topic_11168_0.html

Но он всеравно недает запустить конфигуре из нового каталога. попробую поставить активперл

Поставил, добавил в батник путь до перл.ехе, запустил, вроде конфигурится Улыбающийся
« Последнее редактирование: Март 13, 2011, 11:38 от flame » Записан
flame
Гость
« Ответ #5 : Март 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

И еще куча таких ворнингов... что делать?  Непонимающий
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #6 : Март 13, 2011, 20:10 »

вот мой батник создающий окружение:
Код
Bash
set QTDIR=L:\QtGit\Qt_4.6.x
set MINGWDIR=F:\MinGW\4.4.0
set QMAKESPEC=win32-g++
 
set QTBIN=%QTDIR%\bin
set MINGWBIN=%MINGWDIR%\bin
set ADDONPATH=F:\Perl\bin
 
::===================================
set PATH=%QTBIN%;%MINGWBIN%;%ADDONPATH%;%SystemRoot%\System32
cmd.exe
 
Перл брал отсюда: ActiveState.com.

П.С.
И для сборки яб использовал просто архив с исходниками, а не SDK

П.П.С.
Для Qt >=4.6, MinGW должен содержать компиллер >=4.4 ссылка:
http://ftp://ftp.trolltech.com/misc/MinGW-gcc440_1.zip (учти, форум лепит http лишнее)
Записан

Юра.
flame
Гость
« Ответ #7 : Март 13, 2011, 21:22 »

Спасибо Юрий, буду разбираться завтра!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.097 секунд. Запросов: 22.