Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Larrikin от Октябрь 24, 2005, 09:22



Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Larrikin от Октябрь 24, 2005, 09:22
Не могу никак справиться со сборкой.
Указывал в makefile.release флагу LDFLAGS += -static, ругается на то, что не может найти QtCore4.
Кто и как собирает программы под qt статически? чтоб библиотеки за собой не тащило?


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Perchilla от Октябрь 25, 2005, 22:10
пересобрать QT с опцией -static скорее всего. Но у меня не получилось, на каком - то этапе сборки пишет слишком много входный параметров. У всех, кого спрашивал получалось, а у меня - нифига . Уже который вечер колупаюсь  :evil: .


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Larrikin от Октябрь 26, 2005, 06:46
Хорошо, пересобираю библтотеку.
Ох и не быстрое это дело....


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: L.Marvell от Октябрь 26, 2005, 13:40
Цитата: "Perchilla"
пересобрать QT с опцией -static скорее всего. Но у меня не получилось, на каком - то этапе сборки пишет слишком много входный параметров. У всех, кого спрашивал получалось, а у меня - нифига . Уже который вечер колупаюсь  :evil: .

Не у тебя одного. У меня был тот же прикол с параметрами. Плюнул. Юзаю динамик. Пока не жалуюсь.  :)


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Larrikin от Октябрь 26, 2005, 13:51
Цитата: "L.Marvell"
Цитата: "Perchilla"
пересобрать QT с опцией -static скорее всего. Но у меня не получилось, на каком - то этапе сборки пишет слишком много входный параметров. У всех, кого спрашивал получалось, а у меня - нифига . Уже который вечер колупаюсь  :evil: .

Не у тебя одного. У меня был тот же прикол с параметрами. Плюнул. Юзаю динамик. Пока не жалуюсь.  :)

А как дистрибутив программы собираешь?


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Perchilla от Октябрь 26, 2005, 19:43
Цитата: "Larrikin"
А как дистрибутив программы собираешь?
я пока все в кучу, вместе с DLL ками засовываю  :D .

L.Marvell, а у тебя какой дистрибутив QT? Я вот думаю может в 4.0.1 профиксили. качать не качать?[/code]


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: fanat9 от Октябрь 26, 2005, 22:05
Не знаю на какие параметры у вас при с борке ругается, но у меня просто пишет про ошибку в каком-то исходнике qt designer'a и всё. Причем сами библиотеки вроде бы собираются.
Это касается попытки сборки QT с -static версий 4.0.1 и snapshot'ов 4.1.0
C -shared 4.0.1 собирается без проблем, 4.1.0 последних 7 дней пока нет =)

А теперь вопрос - как же собирать приложение с использование static libs ?

config  += staticlib - это не про то, а больше никаких ключей в документации я не нашел. Плохо искал ?
Так как же собирать статик версию приложения ?


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: L.Marvell от Октябрь 28, 2005, 15:33
2Larrikin
нужные dllки от кути + mingwm10.dll ходят следом за бинарником

2Perchilla
пробовал собирать 4.0.0 со статиком, а сейчас 4.0.1 - с ним не заморачивался, сразу собрал динамически.


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Larrikin от Октябрь 28, 2005, 16:33
Цитата: "L.Marvell"
2Larrikin
нужные dllки от кути + mingwm10.dll ходят следом за бинарником

Тоесть в один файл не собрать?


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: L.Marvell от Октябрь 28, 2005, 17:25
Цитата: "Larrikin"
Цитата: "L.Marvell"
2Larrikin
нужные dllки от кути + mingwm10.dll ходят следом за бинарником

Тоесть в один файл не собрать?

Ну вродь как ежли собрать проект статически, то должен быть один бинарник, только я ниразу не пробовал.


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Larrikin от Октябрь 28, 2005, 18:57
Цитата: "L.Marvell"
Цитата: "Larrikin"
Цитата: "L.Marvell"
2Larrikin
нужные dllки от кути + mingwm10.dll ходят следом за бинарником

Тоесть в один файл не собрать?

Ну вродь как ежли собрать проект статически, то должен быть один бинарник, только я ниразу не пробовал.

Я тоже так думал. Но собрать проект статически у меня не получалось.
А тащить все используемые библиотеки с файлом накладно.
К тому же... вот взять например icq клиент SIM. он в дистрибутиве занимает 4Мб. А если взглянуть на размеры библиотек, например QCore, QNetwork, то получается уже более 10Мб.
Ладно, хватит разглагольствовать, у меня появилась мысль :) и я её сейчас буду думать.
Скачаю исходники этого самого SIM`а и пороюсь в них.
О результатах сообщу.


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: L.Marvell от Октябрь 28, 2005, 19:26
Ну это уже по потребностям. К примеру для моей прилаги нужны только mingwm10.dll, qtcore4.dll и qtgui4.dll вместе занимающие 6,7Мб, но я прошелся по ним upx'ом и стали они кушать всего 2,5Мб.


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Perchilla от Октябрь 28, 2005, 21:41
Цитировать
К тому же... вот взять например icq клиент SIM. он в дистрибутиве занимает 4Мб.
Верояно она была собрана на тройке, а там со статиком проблем не было. Тем более размеры тогда не такие большие были. минимальная статическия программа весила 1,5 мб.


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Larrikin от Октябрь 31, 2005, 07:12
Цитата: "Perchilla"
Цитировать
К тому же... вот взять например icq клиент SIM. он в дистрибутиве занимает 4Мб.
Верояно она была собрана на тройке, а там со статиком проблем не было. Тем более размеры тогда не такие большие были. минимальная статическия программа весила 1,5 мб.

Когда я был маленький а деревья большими и крокодилы высокими....
Но ИМХО быть не может что тролли не продумали нормальную статическую компиляцию на четверке. Иначе неинтересно получается. Потому что таскать десять метров в небольшой по функционалу проге... мазохизм.

Ок. Пошел курить маны.
P.S. sim таки да, на тройке собран был.


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Larrikin от Октябрь 31, 2005, 11:36
Цитата: "Larrikin"
Цитата: "Perchilla"
Цитировать
К тому же... вот взять например icq клиент SIM. он в дистрибутиве занимает 4Мб.
Верояно она была собрана на тройке, а там со статиком проблем не было. Тем более размеры тогда не такие большие были. минимальная статическия программа весила 1,5 мб.

Когда я был маленький а деревья большими и крокодилы высокими....
Но ИМХО быть не может что тролли не продумали нормальную статическую компиляцию на четверке. Иначе неинтересно получается. Потому что таскать десять метров в небольшой по функционалу проге... мазохизм.

Ок. Пошел курить маны.
P.S. sim таки да, на тройке собран был.

Решено.
Например проект называется "test":
qmake -project
qmake "CONFIG += staticlib" test.pro
make release
Вуаля!


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: burunduk от Октябрь 31, 2005, 13:13
да не работает
WinXP:  программа не умещается в памяти
я так понимаю эта опция для сборки из исходников своей либы

Цитата: "Larrikin"

Например проект называется "test":
qmake -project
qmake "CONFIG += staticlib" test.pro
make release
Вуаля!


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Larrikin от Октябрь 31, 2005, 13:25
Цитата: "burunduk"
да не работает
WinXP:  программа не умещается в памяти
я так понимаю эта опция для сборки из исходников своей либы

Цитата: "Larrikin"

Например проект называется "test":
qmake -project
qmake "CONFIG += staticlib" test.pro
make release
Вуаля!

Ось - WinXP
Собирается, все нормально. Бинарник получается 5,5Мб. Только требует mingw32.dll, но это уже мелочи.
Про память не знаю, у меня гиг оперативки стоит.
Хотя, секундочку.. Я ведь вчера на ночь оставлял qt пересобираться с опцией -static. Так что вот. Положительный результат достигнут сборкой QT с опцией -static.


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: crocus от Ноябрь 02, 2005, 06:36
Снэпшот от 1 ноября собрался правда в него забыли положить ActiveQT
(брал с другого снэпшота) и пришлось править исходники для сборки MySQL. Релиз получился 6,2 MB.


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: burunduk от Ноябрь 09, 2005, 11:32
А с какого именно можно взять снэпшота ActiveQT ?

У меня qt-win-opensource-src-4.1.0-snapshot-20051108 написал error:
Cannot find file: activeqt.pro

Посмотрел в qt-win-opensource-src-4.0.1, там тоже нету activeqt.pro.


Цитата: "crocus"
Снэпшот от 1 ноября собрался правда в него забыли положить ActiveQT
(брал с другого снэпшота) и пришлось править исходники для сборки MySQL. Релиз получился 6,2 MB.


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: crocus от Ноябрь 10, 2005, 04:28
Снэпшот от 12 октября


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Вудруф от Ноябрь 10, 2005, 08:00
Цитировать
Собирается, все нормально. Бинарник получается 5,5Мб. Только требует mingw32.dll, но это уже мелочи.


Забавно, а у меня с указанными опциями и командами exe-шник не хочет собирать. Исключительно o-файлы получаются..


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: burunduk от Ноябрь 10, 2005, 11:07
его же уже нету у них на сайте :-(
если не трудно пришлите плз. файлы, которые к ActiveQT там относятся на
dmj_box [собака] ukr.net


Цитата: "crocus"
Снэпшот от 12 октября


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: fanat9 от Ноябрь 10, 2005, 17:23
У меня получилось собрать статическую версию только после изменения в mkspecs\win32-g++\qmake.conf   QMAKE_LFLAGS_DLL = -static, вместо -shared.
При этом в *.pro только  CONFIG += release qt

С опцией -staticlib - получаются статические библиотеки  *.a, что в общем-то логично.

Размер получается действительно в районе 5.5М при использовании OpenGL+Network.
Остается зависимость статически собранной программы от  15кб mingwm10.dll - пока не  нашел решения, если кто решил - напишите плз =)

P.S. Всё для 4.0.1, одинаково работает на рабочей w2k и домашней XP.


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Вудруф от Ноябрь 10, 2005, 20:22
У тебя какая версия mingw, что mingwm10.dll 15 кб весит... Раньше (давно) тоже такое было, но с новой версией всех пакетов эта dll-ка уже 746к...


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Вудруф от Ноябрь 10, 2005, 20:28
Цитировать
У меня получилось собрать статическую версию только после изменения в mkspecs\win32-g++\qmake.conf QMAKE_LFLAGS_DLL = -static, вместо -shared.
При этом в *.pro только CONFIG += release qt

Не помогло. Всё равно собирает динамическую. Может, это только для случая, когда сама библиотека собрана статически?


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: fanat9 от Ноябрь 10, 2005, 23:34
Сама QT конечно должна быть собрана статически.

У меня было  так:
- Я скачал и установил бинарную qt-4.0.1 под MinGW.
- Перекомпилил qt (configure -static -platform win32-g++, make).
Компиляция правда вывалиливается с ошибкой на Linguist'e, но к этому моменту все qt библиотеки в статической версии уже скомпилированы.
- Поправил mkspecs.

После этого стало компилиться статически, но когда попробывал на другой машине - ругнулось на mingwm10.dll, когда скопировал и её - то всё заработало.
MinGW соответственно той версии, которую троллы запихнули в архив.
Соответвенно, если поменять в mkspecs флаг обратно - то программа собирается с динамически подключаемыми библиотеками.


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Вудруф от Ноябрь 11, 2005, 11:36
А можно как-нибудь скомпилировать библиотеку, а потом программы по выбору делать статическими или динамическими без перекомпиляции библиотеки?


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Larrikin от Ноябрь 14, 2005, 16:21
Цитата: "Вудруф"
А можно как-нибудь скомпилировать библиотеку, а потом программы по выбору делать статическими или динамическими без перекомпиляции библиотеки?

Цитировать
Соответвенно, если поменять в mkspecs флаг обратно - то программа собирается с динамически подключаемыми библиотеками.

выше ведь написано


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Novichok от Декабрь 20, 2005, 13:40
ребята, я еще только учусь, так что извините за ламерский вопрос
у меня QT410rc1OpenSource + MinGw (CodeBlocks)
так вот, у меня после
Цитата: "Larrikin"

Решено.
Например проект называется "test":
qmake -project
qmake "CONFIG += staticlib" test.pro
make release


в папке release вместо Test.exe создался libTest.a
это так должно быть?, если да, то тогда что дальше...
(а если собираю без "CONFIG += staticlib" то нормально создается Test.exe)


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Вудруф от Декабрь 20, 2005, 13:45
Ну, видимо, та же проблема. Собрана динамическая версия библиотеки, с ней статические версии программ не создать...


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: burunduk от Декабрь 20, 2005, 15:37
В RC1 -static опция уже нормально собирает QT статически.
Только вот как теперь бы избавиться от mingwm10.dll  ??


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Novichok от Декабрь 20, 2005, 18:33
Цитата: "Вудруф"
Ну, видимо, та же проблема. Собрана динамическая версия библиотеки, с ней статические версии программ не создать...


повторюсь, что с QT я  только начинаю знакомиться, так что еще раз извините за ламеркий вопрос.

я скачал qt-win-opensource-4.1.0rc1-mingw.exe
и просто запустил экзешник. При этом, как я теперь понимаю, автоматом собирается динамическая версия и компилятор ей подходит только MinGw (а при использовании именно MinGw еще добавляются проблемы с подключением к MySQL (это я так вычитал на вашем форуме))

Так вот вопрос. Вот вышел сейчас QT410. Для скачивания выложено 2 файла
qt-win-opensource-src-4.1.0.zip
и
qt-win-opensource-4.1.0-mingw.exe

Если качать qt-win-opensource-4.1.0-mingw.exe то видимо будет та же ситуация. А вот если я скачаю qt-win-opensource-src-4.1.0.zip то мне, я так понимаю, придется вручную собирать QT библиотеку. Хоть я еще и не разобрался как это делается, но просто хочется узнать, смогу ли я использовать что-то другое кроме MinGw для того чтобы избежать проблем с подключением к MySQL?


Название: сборка qt приложения mingw под винду статически [solved]
Отправлено: Вудруф от Декабрь 26, 2005, 12:58
А как другой компилятор решит проблему библиотеки (она вообще действительно есть, эта самая проблема?)?
Я бы посоветовал скачать qt-win-opensource-src-4.1.0.zip и MinGW отдельно, т.к. в последнем случае будет просто обновлять MinGW, а собрать самому - не проблема, более того - в этом случае ты сможешь отключить ненужные тебе вещи (и подключить, соответственно, нужные). Если немного подправить makefile'ы, то не будут собираться примеры и демки, что значительно сократит время компиляции...