crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Статическая сборка Qt-4.4.3 без зависимости от mingwm10.dll
Litkevich Yuriy
  опции профиля:
сообщение 1.11.2009, 16:54
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Попробовал повторить всю процедуру описанную на Qt-Центре

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

С помощью Dependency Walker посмотрел и увидел, что зависимость от mingwm10.dll осталась.
Может кто-нибудь это прокомментировать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 6)
SABROG
  опции профиля:
сообщение 1.11.2009, 19:04
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


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

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

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


Сообщение отредактировал SABROG - 1.11.2009, 19:07
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.11.2009, 19:17
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(SABROG @ 1.11.2009, 22:04) *
Ключ -no-exceptions добавил
вот его я как раз не стал добавлять. Подумал, а вдруг пригодятся.
А нельзя-ли саму dll'ку вкомпиливать в код?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
niXman
  опции профиля:
сообщение 1.11.2009, 19:58
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 169
Регистрация: 18.6.2008
Пользователь №: 204

Спасибо сказали: 1 раз(а)




Репутация:   0  


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

а может не надо ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.11.2009, 20:29
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(niXman @ 1.11.2009, 22:58) *
а может не надо
"надо Вася, надо" @ фильма
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 1.11.2009, 20:40
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Можно на самом деле. В 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
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


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

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.11.2024, 13:37