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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: статическая компиляция QT ???  (Прочитано 13633 раз)
allco
Гость
« : Июль 21, 2006, 20:18 »

как это сделать ???
как закомпилить qt статически под Windows ???

Помогите плиз !!!
Записан
Alexei
Гость
« Ответ #1 : Июль 22, 2006, 11:17 »

Надо в командной строке configure.exe указать -static
Например, я использую следущую команду для сборки статической Qt:

configure.exe -debug-and-release -static -plugin-sql-mysql -plugin-sql-oci -qt-zlib -no-gif -qt-libpng -no-libmng -qt-libjpeg -no-qt3support
Записан
L.Marvell
Гость
« Ответ #2 : Июль 22, 2006, 11:41 »

Цитата: "Alexei"
Надо в командной строке configure.exe указать -static
Например, я использую следущую команду для сборки статической Qt:

configure.exe -debug-and-release -static -plugin-sql-mysql -plugin-sql-oci -qt-zlib -no-gif -qt-libpng -no-libmng -qt-libjpeg -no-qt3support

-plugin-sql-mysql? В статической версии плагины же вроде как не работают? Сам не проверял, но вроде слышал такое.
Записан
noosooth
Гость
« Ответ #3 : Июль 22, 2006, 12:49 »

Цитата: "L.Marvell"
[-plugin-sql-mysql? В статической версии плагины же вроде как не работают? Сам не проверял, но вроде слышал такое.


Это есть не совсем так. Улыбающийся
Насколько я понимаю, начиная с версии 4.1, в Qt появились т.н. статические плагины.
Посмотрите в Assistant макрос Q_IMPORT_PLUGIN и там же ссылочка на
Static Plugins.

С SQL драйверами я таким образом не работал, но по крайней мере графические плагины (GIF, JPEG и MNG) - прекрасно собираются в отдельные статические библиотеки.
Записан
L.Marvell
Гость
« Ответ #4 : Июль 22, 2006, 13:20 »

Цитата: "noosooth"
Цитата: "L.Marvell"
[-plugin-sql-mysql? В статической версии плагины же вроде как не работают? Сам не проверял, но вроде слышал такое.


Это есть не совсем так. Улыбающийся
Насколько я понимаю, начиная с версии 4.1, в Qt появились т.н. статические плагины.
Посмотрите в Assistant макрос Q_IMPORT_PLUGIN и там же ссылочка на
Static Plugins.

С SQL драйверами я таким образом не работал, но по крайней мере графические плагины (GIF, JPEG и MNG) - прекрасно собираются в отдельные статические библиотеки.

Интересно. Почитаем.
Сколько места отъедает статически собранная кт? А то вот поставил собираться, а теперь думаю хватит, не хватит... Улыбающийся
Записан
noosooth
Гость
« Ответ #5 : Июль 22, 2006, 14:06 »

Цитата: "L.Marvell"
Сколько места отъедает статически собранная кт? А то вот поставил собираться, а теперь думаю хватит, не хватит... Улыбающийся


Тут мне сложно ответить, т.к. работаю в основном с динамической версией,
а статическую собираю в отдельном каталоге и только release.
(configure -release -static -qt-gif -qt-libpng -qt-libmng -qt-libjpeg)
Собираю компилятором от VS2005, причем только исходники (без еxamples, demos и tools).

Вдобавок в mkspecs\win32-msvc2005\qmake.conf я
включил оптимизацию по скорости и статически подлинковался с плюсовым runtime.

Весит это дело у меня в районе 289 метров.
Записан
L.Marvell
Гость
« Ответ #6 : Июль 22, 2006, 14:32 »

Цитата: "noosooth"
Цитата: "L.Marvell"
Сколько места отъедает статически собранная кт? А то вот поставил собираться, а теперь думаю хватит, не хватит... Улыбающийся


Тут мне сложно ответить, т.к. работаю в основном с динамической версией,
а статическую собираю в отдельном каталоге и только release.
(configure -release -static -qt-gif -qt-libpng -qt-libmng -qt-libjpeg)
Собираю компилятором от VS2005, причем только исходники (без еxamples, demos и tools).

Вдобавок в mkspecs\win32-msvc2005\qmake.conf я
включил оптимизацию по скорости и статически подлинковался с плюсовым runtime.

Весит это дело у меня в районе 289 метров.

Вот заодно и спрошу. Как собирать без examples, demos, tools? Я так подозреваю что нужно где-то что-то закоментировать, только вот где?
Записан
noosooth
Гость
« Ответ #7 : Июль 22, 2006, 18:34 »

Цитата: "L.Marvell"
Вот заодно и спрошу. Как собирать без examples, demos, tools? Я так подозреваю что нужно где-то что-то закоментировать, только вот где?


Я после configure просто говорю: nmake sub-src
Записан
Alexei
Гость
« Ответ #8 : Июль 23, 2006, 13:53 »

Цитировать
Сколько места отъедает статически собранная кт? А то вот поставил собираться, а теперь думаю хватит, не хватит...


Чуть меньше 5Г
Записан
L.Marvell
Гость
« Ответ #9 : Июль 24, 2006, 13:52 »

Я уже нарыл, но все равно спасибо. Правда у меня как-то ну очень мало получилось, 263М. Счаз буду проверять все ли работает Улыбающийся

добавлено спустя 57 минут:

 А это нормально что статически собранное приложение тянет за собой списочек:
comerr32.dll
krb5_32.dll
libiconv-2.dll
libintl-2.dll
libmysql.dll
libpq.dll

Само приложение работает с б/д MySQL, а либу для постгреса я скомпилил для кт на всякий случай.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #10 : Июль 24, 2006, 15:00 »

дв нормально! пусть тянет!
Записан
L.Marvell
Гость
« Ответ #11 : Июль 24, 2006, 15:49 »

Стоп. Но ведь кт собиралась статически с опциями -qt-sql-mysql и -qt-sql-psql (и соотв. путями к инклудам и либам). Т.е. как мне представлялось кт должна была слинковаться с libmysql и libpq ну и соотв. приложение не должно требовать этих дллек. Или я все неправильно понял.
+ ко всему, зачем мне таскать с приложением libpq.dll и его табор, если приложение не работает с PostgreSQL?
Записан
noosooth
Гость
« Ответ #12 : Июль 24, 2006, 19:26 »

Цитата: "L.Marvell"
Т.е. как мне представлялось кт должна была слинковаться с libmysql и libpq ну и соотв. приложение не должно требовать этих дллек. Или я все неправильно понял.


Ничего не смыслю в этих драйверах к базам, но рискну предположить, что статически собрав Qt с ключами qt-sql... , Вы всего лишь получили отдельные статические библиотеки где нибудь в /Qt/4.x.x/plugins/...
И насколько я понимаю, линковку с этими библиотеками должно осуществлять Ваше приложение, а не Qt.
Плюс в приложении Вы должны использовать макрос Q_IMPORT_PLUGIN.

Возможно я ошибаюсь.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #13 : Июль 24, 2006, 22:15 »

нет libmysql.dll  это dll, это не статическая либа
ты ее никак не запихнешь к себе, возможно для этого надо пересобрать mysql
Записан
noosooth
Гость
« Ответ #14 : Июль 25, 2006, 00:29 »

Цитата: "Admin"
нет libmysql.dll  это dll, это не статическая либа
ты ее никак не запихнешь к себе, возможно для этого надо пересобрать mysql


Прошу прощения, это я видимо несколько обнаглел и полез в область где ни ухо ни рыло Улыбающийся

Ежели libmysql.lib это библиотека импорта для libmysql.dll  из поставки мускула, и она нужна  Qt' вому плагину для того чтобы собственно собраться, то тогда он ессно будет тянуть эту dll за собой независимо от того статически он слинкован или нет.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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