Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Статическая сборка Qt-4.4.3 без зависимости от mingwm10.dll

Автор: Litkevich Yuriy 1.11.2009, 16:54

Попробовал повторить всю процедуру http://wiki.qtcentre.org/index.php?title=Building_static_applications

При сборке приложения указывал

CONFIG += static

С помощью Dependency Walker посмотрел и увидел, что зависимость от mingwm10.dll осталась.
Может кто-нибудь это прокомментировать?

Автор: SABROG 1.11.2009, 19:04

Ключ -no-exceptions добавил, когда пересобирал Qt? mingwm10.dll как раз отвечает за работу исключений в разных потоках.

Если брать mkspecs для g++, то там линковка mthreads идет, если исключения включены, а mthreads требует как раз mingwm10.dll:

QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions

Автор: Litkevich Yuriy 1.11.2009, 19:17

Цитата(SABROG @ 1.11.2009, 22:04) *
Ключ -no-exceptions добавил
вот его я как раз не стал добавлять. Подумал, а вдруг пригодятся.
А нельзя-ли саму dll'ку вкомпиливать в код?

Автор: niXman 1.11.2009, 19:58

Цитата(Litkevich Yuriy @ 1.11.2009, 19:17) *
А нельзя-ли саму dll'ку вкомпиливать в код?

а может не надо ;)

Автор: Litkevich Yuriy 1.11.2009, 20:29

Цитата(niXman @ 1.11.2009, 22:58) *
а может не надо
"надо Вася, надо" @ фильма

Автор: SABROG 1.11.2009, 20:40

Можно на самом деле. В maillist mingw даже прилагали патч, который позволяет избавиться от этой .dll. Но разработчики не хотят (не хотели во всяком случае, сейчас не знаю как обстоят дела). Не хотели по той причине, что в Windows 95,98,ME нет поддержки статических Thread Local Storage (TLS) обратных вызовов (callbacks) вшитых в PE. На этих операционных системах калбэки работают только с .dll через вызов главной функции dllMain с параметром DLL_PROCESS_ATTACH. Соответственно в более современных ОС семейства Windows уже не обязательно должна быть .dll. Если бы даже разработчики сделали статическую версию этой библиотеки и новая mingw собирала программы под Windows 9x, то в таких приложениях была бы утечка памяти.

Автор: Litkevich Yuriy 1.11.2009, 20:59

просто весит она копейки и под ногами болтается.
Я её всё время забываю, т.к. на многих машинах она присутствует из-за каких-нибудь программ, но не на всех.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)