Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] сборка и перенос DLL


Автор: ecspertiza 11.11.2008, 17:36
Джентельмены программеры подскажите плз, если я qt проект собираю под виндой, при переносе приложения на другой компьютер, обязательно ли вслед за приложением таскать QT-шные Dll???

Автор: SABROG 11.11.2008, 17:54
Распространенный вопрос.

Когда вы игры ставите или другие программы, что вы видите ? Инсталлятор!
Когда программа уже установлена, то в папке с ней находится куча других файлов. Разработчики ведь не задаются вопросом, а надо ли их всех тащить с собой.

Если хочется сделать что-то на подобии небольшой утилиты размеров в ~10-20 мегабайт, то можно собрать Qt статически.

Автор: ecspertiza 12.11.2008, 09:02
Просто есть программка, которая сама по себе занимает 2.68 мегабайта, а для её использования надо таскать либов ешё на почти 100 метров, немного неудобно, для пары функций такой размер. А что за сборка статическая? 

Автор: SABROG 12.11.2008, 09:15
http://forum.vingrad.ru/act-Search/CODE/show/searchid-559d7ac6f5ca776a90619155a864098d/search_in-posts/result_type/topics/flag/search/highlite/%25D1%2581%25D1%2582%25D0%25B0%25D1%2582%25D0%25B8%25D1%2587%25D0%25B5%25D1%2581%25D0%25BA%25D0%25B0%25D1%258F/index.html

Автор: ecspertiza 12.11.2008, 09:19
Спасибо я уже там же нашёл smile с удовольствием повысел бы твой рейтинг но у мя постов нехватает smile

Автор: ecspertiza 12.11.2008, 11:12
для статической сборке обязательно пересобирать всю QT, нехочется очень ибо долго. может можно собрать проект в статической линковке?

Автор: SABROG 12.11.2008, 12:09
Обязательно. Убедись, что у тебя при этом будет свободных 10-15 гигабайт на винте.

Автор: ecspertiza 12.11.2008, 12:37
я нащёл способ статической линковке  приложения для етого совсем необязятельно пересобирать QT но вот при сборке приложения ошибка:
Код

debug/main.o(.text$_ZN29StaticqsqlibasePluginInstanceC1Ev[StaticqsqlibasePluginInstance::StaticqsqlibasePluginInstance()]+0x9): In function `ZSt3minIjERKT_S2_S2_':
C:/Users/ecspertiza/workspace/Directory/../../../../Qt/4.4.3/include/QtGui/qwidget.h: undefined reference to `qt_plugin_instance_qsqlibase()'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\Directory.exe] Error 1
mingw32-make[1]: Leaving directory `C:/Users/ecspertiza/workspace/Directory'
mingw32-make: *** [debug] Error 2

Автор: SABROG 12.11.2008, 13:53
Плагины вроде как невозможно собрать статически.

Цитата

To deploy plugin-based applications, you can use the shared library approach. Shared libraries also provide smaller, more flexible executables. For example, using the shared library approach, the user is able to independently upgrade the Qt library used by the application.

Автор: ecspertiza 12.11.2008, 15:06
Спасибsmile

Автор: JackYF 12.11.2008, 16:07
Цитата(ecspertiza @  12.11.2008,  08:19 Найти цитируемый пост)
с удовольствием повысел бы твой рейтинг но у мя постов нехватает

Повысил.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)