Страница 1 из 2

Непонятки со статической сборкой

Добавлено: 2011-02-27 10:19:30
SoeR
Доброго времени суток, уважаемые форумчане.
Столкнулся я с одной траблой, клянусь - в доках ничего по этому поводу не нашел.
Вобщем, дело было так:
Понадобилось мне пересобрать QT статически (версия QT - 4.7.0), что и было успешно сделано (на всякий случай уточняю - собирал с поддержкой qt-sql-mysql и openssl-linked)
Соответственно, пришлось перекомпиливать исходники, с которыми я работаю.
Всё бы ничего, но один проект после перекомпиляции ведет себя очень странно (GUI-приложение с network и webkit). Для наглядности пересобрал его в debug, проект стал весить 183 мегабайта.
При запуске на машине, где собирал, выдает ошибку точки входа в процедуру (первый скриншот).
При запуске на виртуальной машине, где QT никогда не было, экзэшник при запуске начинает требовать либы SSL и (внимание!) либы самой QT (QtCored4.dll, QtGuid4.dll и т.д.). Когда я копирую в папку с экзэшником эти либы - выдает ошибку точки входа в процедуру.
Скрины прилагаются.
Кто сталкивался с такой траблой - плз помогите. У меня следующие вопросы:
1) Почему экзэшник, собранный статически, требует dll-ки QT?
2) Что это за ошибки точки входа в процедуру?
3) Есть ли возможность, имея статически собранную QT собирать приложения не статически?

Re: Непонятки со статической сборкой

Добавлено: 2011-02-28 2:44:03
fox
Точка входа, как правело когда дисонанс с версиями библиотек Qt, ты видать компелиш с одной версией а подсовываеш дурие длл.
Шо за статическая сборка ты не в вижуал студии вкидывай библиотеки необходимы в папку с проектом и не парся!

Re: Непонятки со статической сборкой

Добавлено: 2011-02-28 8:55:06
SoeR
Когда я пересобрал QT статически, все проекты начали тоже собираться статически, даже без опции -static в файле .pro (это понятно по весу экзэшника).
Я бы рад собрать проект не статически и библиотеки подкинуть в папку с проектом, но на выходе экзэшник всё равно включает в себя либы.

Не пойму, при чем здесь несоответствие версий? И где это может быть? Версия QT у меня была одна и та же (4.7.0), я только пересобрал QT с -static.
Я удалял из проекта Makefile и .pro файл, делал их заново, всё равно он такую ошибку выдает. :st:

Re: Непонятки со статической сборкой

Добавлено: 2011-02-28 9:22:09
hizel
прикольные скриншоты, а что в виндовзе нет ldd ?

Re: Непонятки со статической сборкой

Добавлено: 2011-02-28 9:51:39
SoeR
Понял о чем речь :) Нет под виндой ldd, но у меня другой вопрос - с какого проект, собранный статически требует либы QT?

Re: Непонятки со статической сборкой

Добавлено: 2011-02-28 9:58:29
hizel
показывает какие so-ошки будет использовать исполняемый файл

Re: Непонятки со статической сборкой

Добавлено: 2011-02-28 10:08:45
SoeR
Пришлось решить траблу неординарным образом - установил ещё одну QT.
Теперь у меня 2 QT - одна собранная статически, другая - по дефолту.
Периодически буду менять пути, когда что-нить статическое надо будет собрать.
Сейчас времени нет разбираться, тем более - только один проект так себя ведет. Остальные - нормально.
Кто сталкивался с подобной траблой - пожалуйста отпишитесь.

P.S. Тема не закрыта - на досуге сам буду ковырять, если никто не отпишется :)

Re: Непонятки со статической сборкой

Добавлено: 2011-03-01 22:04:24
Fastman
Возьми Depends.Exe открой в нем свою аппу и погляди чего оно хочет за собой тянуть.
Ради приколы - сюда скрин давай. Подывымсо :)
Судя по всему у тебя для статической сборки SSL не включен.

Re: Непонятки со статической сборкой

Добавлено: 2011-03-01 22:12:51
fox
Fastman писал(а):Возьми Depends.Exe открой в нем свою аппу и погляди чего оно хочет за собой тянуть.
Ради приколы - сюда скрин давай. Подывымсо :)
Судя по всему у тебя для статической сборки SSL не включен.
Здравствуй Фастман!
Подскажи тогда а как собрать библиотеку индивидуально для приложения (что-бы она содержала нужные сведенья для скажем моего приложения)?

Re: Непонятки со статической сборкой

Добавлено: 2011-03-01 22:19:09
Fastman
fox писал(а): Здравствуй Фастман!
Подскажи тогда а как собрать библиотеку индивидуально для приложения (что-бы она содержала нужные сведенья для скажем моего приложения)?
Ну геморой придумал ты конечно. Вот собрал ты Qt с noGui и noSQL а потом решил хранить некие данные в базе (sqlite к примеру). А потом и GUI решил пристебать.
И придется тебе пересобирать Qt и софт твой. Впрочем, я обычно на виртуалках держу такие "кастомные сборки".
Но имхо - геморой. Либо делай статик (туда/сюда 20мег в век гигабайтов - не проблема), либо не дури голову и шаред.

Re: Непонятки со статической сборкой

Добавлено: 2011-03-02 12:21:33
Alex Keda
вот они, программисты нынешние.
а потом народ удивляется - почему дистры на DVD стали поставлять...

Re: Непонятки со статической сборкой

Добавлено: 2011-03-02 12:24:04
hizel
интересно кого из собеседников ты обозвал программистом :-\

Re: Непонятки со статической сборкой

Добавлено: 2011-03-02 12:36:36
fox
hizel писал(а):интересно кого из собеседников ты обозвал программистом :-\
Тебя Хизель!

Re: Непонятки со статической сборкой

Добавлено: 2011-03-02 13:59:39
Fastman
Alex Keda писал(а):вот они, программисты нынешние.
а потом народ удивляется - почему дистры на DVD стали поставлять...
Лис, ты когда последний раз dvd видел ??? :)
У меня года два как уже даже привода нету !
Вообще конечно ты прав, но вот тетеньке в бухгалтерии абсолютно пофигу 10 или 20 мег занимает софт :)

Re: Непонятки со статической сборкой

Добавлено: 2011-03-02 17:55:52
Alex Keda
ну мы же не тётеньки в бухгалтерии...
когад я увидел у наших программистов наструганные ими бинарники по 50 мегов - я понял почему на цитриксах стало нехватать памяти =((
а тетеньки из бухгалтерии как работали так и работают

Re: Непонятки со статической сборкой

Добавлено: 2011-03-02 17:58:32
Fastman
Alex Keda писал(а):ну мы же не тётеньки в бухгалтерии...
когад я увидел у наших программистов наструганные ими бинарники по 50 мегов - я понял почему на цитриксах стало нехватать памяти =((
а тетеньки из бухгалтерии как работали так и работают
ну 50 метров это, как то, извините за мой французкий - ебически !
Выгоняйте их нахер.

Re: Непонятки со статической сборкой

Добавлено: 2011-03-02 18:38:36
hizel
тетеньки то работают, однако почему-то им нужны более быстрые серваки и кантуперы для баблосчета и тут рука программиста, заговор :o(

Re: Непонятки со статической сборкой

Добавлено: 2011-03-14 9:24:30
SoeR
Экзэшник ругался на 2 виндовые либы (depends.exe показал).
Фастман сказал, что если я собрал QT статически, не факт, что все необходимые либы будут включены в экзэшник...
И ведь он прав, чёрт возьми :ROFL: А я наивно надеялся, что статическая сборка решит все мои проблемы :ROFL:

В общем, забил я большой болт на статическую сборку.
Есть такая прога - molebox, которая добавляет все необходимые либы (на усмотрение пользователя) в уже собранный экзэшник и пожимает их зипом (вроде).
В итоге экзэшник получился в сумме 11 метров (mingw10.dll, libgcc_s_dw2-1.dll, QtCore4.dll, QtNetwork4.dll, QtGui4.dll, QtWebkit4.dll, phonon4.dll).
Запускается и работает на ура.

Господа Гуру, какие могут быть грабли при таком подходе?

Re: Непонятки со статической сборкой

Добавлено: 2011-03-15 12:45:22
Fastman
Я нихрена не понимаю зачем тебе mingw10.dll и libgcc_s_dw2-1.dll

Re: Непонятки со статической сборкой

Добавлено: 2011-03-15 12:47:32
fox
Fastman писал(а):Я нихрена не понимаю зачем тебе mingw10.dll и libgcc_s_dw2-1.dll
Ну как зачем? Как у него запустится приложение на другой машине если он компелил под gcc?

Re: Непонятки со статической сборкой

Добавлено: 2011-03-15 12:51:01
Fastman
fox писал(а):
Fastman писал(а):Я нихрена не понимаю зачем тебе mingw10.dll и libgcc_s_dw2-1.dll
Ну как зачем? Как у него запустится приложение на другой машине если он компелил под gcc?
Блин.. вы все какие то как тыквы !
Вы софт под Win делаете... зачем gcc ???

Re: Непонятки со статической сборкой

Добавлено: 2011-03-15 19:15:21
fox
Fastman писал(а):
fox писал(а):
Fastman писал(а):Я нихрена не понимаю зачем тебе mingw10.dll и libgcc_s_dw2-1.dll
Ну как зачем? Как у него запустится приложение на другой машине если он компелил под gcc?
Блин.. вы все какие то как тыквы !
Вы софт под Win делаете... зачем gcc ???
А что под виндовый компилятор? Он платный....

Re: Непонятки со статической сборкой

Добавлено: 2011-03-15 20:23:04
Fastman
fox писал(а):
Fastman писал(а):
fox писал(а):
Fastman писал(а):Я нихрена не понимаю зачем тебе mingw10.dll и libgcc_s_dw2-1.dll
Ну как зачем? Как у него запустится приложение на другой машине если он компелил под gcc?
Блин.. вы все какие то как тыквы !
Вы софт под Win делаете... зачем gcc ???
А что под виндовый компилятор? Он платный....
Да ты что ! А Билл Гейцц на завтрак младенцев есть !!!
Ребят.. ну разбуйте глаза уже.. а ???

Re: Непонятки со статической сборкой

Добавлено: 2011-03-15 20:39:51
fox
Ну скажи прямо...
Я не знаю что есть Бил-гей...

Re: Непонятки со статической сборкой

Добавлено: 2011-03-15 22:31:59
Fastman
fox писал(а):Ну скажи прямо...
Я не знаю что есть Бил-гей...
Блин..да бесплатный он ваще... и IDE VS2010 Express тоже (сюрприз !!!!) бесплатная !
Майкрософт ваще охренел :) Да ?