Поиск:

Ответ в темуСоздание новой темы Создание опроса
> gcc-4.4.0 и зависимость от libgcc_s_dw2-1.dll, Как ее избежать? 
V
    Опции темы
andrew_121
Дата 12.8.2009, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



Все мне нравится в версии 4.4.0 За исключением зависимости от libgcc_s_dw2-1.dll
При чем, у исполняемого файла нет прямой зависимости от нее. Значит она подгружается динамически.
Думал статически ее линковать, но нет, нет такой либы.

Как избежать зависимости от нее?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Любитель
Дата 12.8.2009, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата("MinGW ReadMe")

Dynamic linking with libgcc_s_dw2-1.dll is necessary to throw
exceptions between different modules, such as between two DLLs or a
DLL and an EXE.  Consequently, it is the default for all languages
other than C.  To disable this dynamic linking, use -static-libgcc.
To enable this dynamic linking in C, use -shared-libgcc.



--------------------
PM MAIL ICQ Skype   Вверх
andrew_121
Дата 12.8.2009, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



Любитель, Я это видел. Пробовал. То же самое. Попробую еще разок...


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Любитель
Дата 12.8.2009, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



А другие библиотеки у тебя не используются?


--------------------
PM MAIL ICQ Skype   Вверх
andrew_121
Дата 12.8.2009, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



Любитель
Все верно. Зависимость остается если другие библиотеки собраны без этого аргумента.

Тогда еще вопросик.
Как бусту и Кут передать этот аргумент при сборке?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
SABROG
Дата 12.8.2009, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


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

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



Цитата(andrew_121 @  12.8.2009,  20:00 Найти цитируемый пост)
Как бусту и Кут передать этот аргумент при сборке? 


Вероятно через .pro файл:

Код

QMAKE_LFLAGS *= -static-libgcc


Вопрос только в том избавит ли это саму библиотеку Qt от зависимости, т.е. твою программу может и избавит, а Qt'шные dll'ки? И что в этом случае делать, как установить эту опцию глобально для любого проекта Qt?

К тому же с .pro файлом тоже косяк выходит. Необходимо этот ключ прописать строго для компилятора gcc, а не для любого линкера вообще. И как проверить версию gcc в .pro файле, чтобы не передавать этот ключ для gcc младше 4.4.0?


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


Кодофей
****


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

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



Цитата(SABROG @  12.8.2009,  20:18 Найти цитируемый пост)
И что в этом случае делать, как установить эту опцию глобально для любого проекта Qt?

В файле mkspecs/win32-g++/qmake.conf есть строка:
Код

QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc

думаю сюда и нужно прописывать.


Цитата(SABROG @  12.8.2009,  20:18 Найти цитируемый пост)
как проверить версию gcc в .pro файле, чтобы не передавать этот ключ для gcc младше 4.4.0? 

хз*
Написать скрипт, который будет запускать компилятор и парсить вывод. Это только идея. Нужно поэкспериментировать.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Любитель
Дата 12.8.2009, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата(SABROG @  12.8.2009,  20:18 Найти цитируемый пост)
Необходимо этот ключ прописать строго для компилятора gcc, а не для любого линкера вообще.

http://qt.nokia.com/doc/4.5/qmake-advanced...rm-scope-values

Насчёт версии - а отдельнох мейк спеков для 4-го gcc в Qt нет?

И ещё, если не предстоит портабельность на уровне pro-файла - вполне можно свои mkspec-и поправить (даже лучше и проще).

А Qt пересобирать надо, конечно. С этим ключём. А вообще, вариантов масса. Суровый вариант - написать враппер над g++ (и назвать его g++), вызывающий истинный g++, передавая свои команд лайн аргументы + нужный.

Насчёт буста - не знаю, надо смотреть доки, быть может ковырять jam-файлы. Скажу честно - bjam мутный (из небольшого опыта в своё время).


--------------------
PM MAIL ICQ Skype   Вверх
andrew_121
Дата 12.8.2009, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



Цитата(Любитель @  12.8.2009,  21:40 Найти цитируемый пост)
Насчёт версии - а отдельнох мейк спеков для 4-го gcc в Qt нет?

Нет.

Цитата(Любитель @  12.8.2009,  21:40 Найти цитируемый пост)
Суровый вариант - написать враппер над g++

Не стоит smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
andrew_121
Дата 13.8.2009, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



В общем с Qt вопрос решен. Может кто подскажет куда прописать это для буста?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Любитель
Дата 13.8.2009, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



cxxflags или linkflags (надо проверять) в опциях bjam-а: http://www.boost.org/boost-build2/doc/html...invocation.html (смотрим там properties).


--------------------
PM MAIL ICQ Skype   Вверх
andrew_121
Дата 13.8.2009, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



Любитель, Сейчас попробую.
Гы... Еще вопрос. Как заставить bjam собирать либы с расширением .a ?

Это сообщение отредактировал(а) andrew_121 - 13.8.2009, 10:07


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Lazin
Дата 13.8.2009, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(andrew_121 @  13.8.2009,  10:02 Найти цитируемый пост)
Как заставить bjam собирать либы с расширением .a ?

под виндой? а зачем, если не секрет?
PM MAIL Skype GTalk   Вверх
korbian
Дата 13.8.2009, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(andrew_121 @  13.8.2009,  11:02 Найти цитируемый пост)
Как заставить bjam собирать либы с расширением .a ?

кстати, и меня этот вопрос интересует.

Lazin
Цитата(Lazin @  13.8.2009,  11:32 Найти цитируемый пост)
а зачем, если не секрет?

к примеру, для удобства линковки бустовских библиотек, используя опции -L и -l компилятора gcc под окнами


--------------------
korbian ©
PM   Вверх
andrew_121
Дата 13.8.2009, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



korbian, он просто прикалывается


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

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

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


 




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


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

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