![]() |
|
|
![]()
|
|
| mosg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.3.2008 Где: Moscow Репутация: 1 Всего: 1 |
Доброго времени суток, для знающих и не знающих!
К сожалению, вопрос не относится чисто к тематике кроссплатформ и Qt инструменту, но непосредственно связан с Qt, что и дало повод написать тут. Вопрос в следующем: как можно собрать "цельную" static программу.exe со встроеной DLL'кой (mingw32.dll), т.е. чтобы после переноса на другой ПК (той же архитектуры и ОС) программа не зудила, что не может найти библиотеку mingw32.dll, которая весит всего-от ~ 12Kb. Стоит сразу сказать, что это не вопрос, типа "как в статике собрать Qt программу"! Тут проблемы не возникают. Возможно кто-то уже имел опыт подобной реализации (например, с dll2lib или чем-то другим) Спасибо! |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 4 Всего: 97 |
Должна быть такая же статическая библиотека + вам надо пересобрать Qt (если этого ещё не сделали). Я бы просто сделал инсталлятор, который бы копировал в системную папку все нужные dll файлы. |
|||
|
||||
| mosg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.3.2008 Где: Moscow Репутация: 1 Всего: 1 |
Я немного сглупил, и не сказал, что я компиляю/линкую с помощью средств компирятора MinGW. Т.е. саму библиотеку Qt я уже собрал в статике, и файл приложения весит свои порядочные ~ 9Mb, но т.к. прога собирается с помощью MinGW, то требует наличие файла mingw32.dll. Инсталятор исключается, это подпрограмма, дополнение, т.е. скорей функция - нужен только exe'шник. Хотя для больших проектов я бы так и поступил. |
|||
|
||||
| mosg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
| Denjs |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
где-то была опция для файла поекта которая делает почти тоже самое но бех глобальных последствий. и там-же было написано что "mthreads нужен для потокобезопасной обработки исключений , и если вы не используете исключения - оно вам не нужно..."... приведено на правах цитаты по памяти... <_< |
|||
|
||||
| mosg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.3.2008 Где: Moscow Репутация: 1 Всего: 1 |
||||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
||||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 11 Всего: 93 |
Это какой версии Qt? 25-ой что ль? Нужен он [ещё] для корректного прохода ислючения через границу 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 |
|||
|
||||
| mosg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.3.2008 Где: Moscow Репутация: 1 Всего: 1 |
Вот, кстати, тут достаточно интересная дискуссия касательно тематики поста - для любознательных
Это сообщение отредактировал(а) mosg - 12.4.2008, 00:01 |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |