Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [QT, mingw] Как получить "всё в одном флаконе"? Вопрос о сборке программы all-in-one 
V
    Опции темы
mosg
  Дата 15.3.2008, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 3.3.2008
Где: Moscow

Репутация: 1
Всего: 1



Доброго времени суток, для знающих и не знающих!

К сожалению, вопрос не относится чисто к тематике кроссплатформ и Qt инструменту, но непосредственно связан с Qt, что и дало повод написать тут.

Вопрос в следующем: как можно собрать "цельную" static программу.exe со встроеной DLL'кой (mingw32.dll), т.е. чтобы после переноса на другой ПК (той же архитектуры и ОС) программа не зудила, что не может найти библиотеку mingw32.dll, которая весит всего-от ~ 12Kb.

Стоит сразу сказать, что это не вопрос, типа "как в статике собрать Qt программу"! Тут проблемы не возникают.

Возможно кто-то уже имел опыт подобной реализации (например, с dll2lib или чем-то другим)

Спасибо!
PM MAIL WWW ICQ Skype GTalk Jabber YIM MSN   Вверх
powerfox
Дата 16.3.2008, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 4
Всего: 97



Цитата(mosg @  16.3.2008,  00:46 Найти цитируемый пост)
mingw32.dll

Должна быть такая же статическая библиотека + вам надо пересобрать Qt (если этого ещё не сделали).
Я бы просто сделал инсталлятор, который бы копировал в системную папку все нужные dll файлы.


--------------------
user posted image
PM WWW   Вверх
mosg
Дата 16.3.2008, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 3.3.2008
Где: Moscow

Репутация: 1
Всего: 1



Цитата(powerfox @ 15.3.2008,  22:18)
Цитата(mosg @  16.3.2008,  00:46 Найти цитируемый пост)
mingw32.dll

Должна быть такая же статическая библиотека + вам надо пересобрать Qt (если этого ещё не сделали).
Я бы просто сделал инсталлятор, который бы копировал в системную папку все нужные dll файлы.

Я немного сглупил, и не сказал, что я компиляю/линкую с помощью средств компирятора MinGW. Т.е. саму библиотеку Qt я уже собрал в статике, и файл приложения весит свои порядочные ~ 9Mb, но т.к. прога собирается с помощью MinGW, то требует наличие файла mingw32.dll.

Инсталятор исключается, это подпрограмма, дополнение, т.е. скорей функция - нужен только exe'шник. Хотя для больших проектов я бы так и поступил.
PM MAIL WWW ICQ Skype GTalk Jabber YIM MSN   Вверх
mosg
Дата 29.3.2008, 22:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 3.3.2008
Где: Moscow

Репутация: 1
Всего: 1



Решение: пересобрать Qt надо без флага (-mthreads), т.к. именно это влияет на "потребность" qt-программы в файле mingw32.dll

Т.е.: 1) в файле ~\Qt\X.X.X\mkspecs\win32-g++\qmake.conf удалить любое упоминание о -mthreads
2) пересобрать Qt, как обычно
3) пересобрать прогу, как обычно

ЗЫ: Да, неудобно, но работает за-то 100% + думаю, что не стоит объяснять последствия такого принудительного отключения флага -mthreads smile
PM MAIL WWW ICQ Skype GTalk Jabber YIM MSN   Вверх
Denjs
Дата 31.3.2008, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 3.3.2008

Репутация: нет
Всего: нет



Цитата(mosg @ 29.3.2008,  22:08)
Решение: пересобрать Qt надо без флага (-mthreads), т.к. именно это влияет на "потребность" qt-программы в файле mingw32.dll

где-то была опция для файла поекта которая делает почти тоже самое но бех глобальных последствий.
и там-же было написано что "mthreads нужен для потокобезопасной обработки исключений , и если вы не используете исключения - оно вам не нужно..."... приведено на правах цитаты по памяти... <_<
PM MAIL   Вверх
mosg
Дата 31.3.2008, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 3.3.2008
Где: Moscow

Репутация: 1
Всего: 1



Цитата(Denjs @  31.3.2008,  12:05 Найти цитируемый пост)
где-то была опция для файла поекта которая делает почти тоже самое но бех глобальных последствий.


Интересно изнать, что это за опция smile - было бы намного полезней использовать её, а не иметь 2-3 копий собранных Qt...
PM MAIL WWW ICQ Skype GTalk Jabber YIM MSN   Вверх
SABROG
Дата 1.4.2008, 10:50 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(mosg @  31.3.2008,  21:04 Найти цитируемый пост)
а не иметь 2-3 копий собранных Qt...


При этом каждая по 6-8 гигов...


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
archimed7592
Дата 4.4.2008, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93



Цитата(SABROG @  1.4.2008,  10:50 Найти цитируемый пост)
При этом каждая по 6-8 гигов... 

Это какой версии Qt? 25-ой что ль? smile


Цитата(Denjs @  31.3.2008,  12:05 Найти цитируемый пост)
mthreads нужен для потокобезопасной обработки исключений

Нужен он [ещё] для корректного прохода ислючения через границу dll(даже в одном потоке).


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
mosg
Дата 12.4.2008, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 3.3.2008
Где: Moscow

Репутация: 1
Всего: 1



Вот, кстати, тут достаточно интересная дискуссия касательно тематики поста - для любознательных smile

Это сообщение отредактировал(а) mosg - 12.4.2008, 00:01
PM MAIL WWW ICQ Skype GTalk Jabber YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.