Russian Qt Forum
Ноябрь 28, 2024, 07:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3 ... 5   Вниз
  Печать  
Автор Тема: Проблемы после сборки Qt в статику  (Прочитано 40094 раз)
G-virus
Гость
« : Декабрь 20, 2009, 00:16 »

У меня возникла такая не понятная проблема. Когда у меня была библа 4.5.3 я переориентировал ее в статику как написано в этой http://novikovmaxim.narod.ru/linux/lin_progr/QtStatic.htm Все работало после того как я все файлы оканчивающиеся на ..d4.a скопировал и переименовал в ...d.a. Теперь качаю Qt 4.6.0 делаю переориентацию, все работает за исключением одной вещи. он теперь не может найти файл libgcc_s_dw2-1.dll (хотя имхо он должен был включить в exe т.к. статическая линковка). Как это устранить?
Записан
crackedmind
Гость
« Ответ #1 : Декабрь 20, 2009, 01:42 »

Писал тут

Стоит иногда читать инструкции к компиляторам =)
Цитировать
- Dynamic linking with libgcc_s_dw2-1.dll

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 ther than C. To disable this dynamic linking, use -static-libgcc. To enable this dynamic linking in C, use -shared-libgcc.
Записан
G-virus
Гость
« Ответ #2 : Декабрь 20, 2009, 13:16 »

Писал тут

Стоит иногда читать инструкции к компиляторам =)
Цитировать
- Dynamic linking with libgcc_s_dw2-1.dll

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 ther than C. To disable this dynamic linking, use -static-libgcc. To enable this dynamic linking in C, use -shared-libgcc.

Ну. А как юзать то эту -static-libgcc. В профайле писать или при компиляции? Чето не пойму Непонимающий
Записан
G-virus
Гость
« Ответ #3 : Декабрь 20, 2009, 23:47 »

Че никто не знает?  Непонимающий
Записан
crackedmind
Гость
« Ответ #4 : Декабрь 21, 2009, 02:00 »

Что-то типа в pro файле.
Код:
QMAKE_CXXFLAGS_RELEASE += -static-libgcc

Либо можно mkspec подправить )
Записан
G-virus
Гость
« Ответ #5 : Декабрь 21, 2009, 12:50 »

Что-то типа в pro файле.
Код:
QMAKE_CXXFLAGS_RELEASE += -static-libgcc

Это не помогает  Грустный Я вот подумал, если Qt пересобрать в статику с ключом -static-libgcc ? Получится?
Записан
Dendy
Гость
« Ответ #6 : Декабрь 21, 2009, 17:30 »

Вы попробуйте, о результатах отпишитесь (-: Соберите только QtCore и минимальную программку.
Записан
crackedmind
Гость
« Ответ #7 : Декабрь 21, 2009, 17:55 »

Цитировать
Это не помогает   Я вот подумал, если Qt пересобрать в статику с ключом -static-libgcc ? Получится?
Ну вообще то так и надо))
Записан
G-virus
Гость
« Ответ #8 : Декабрь 21, 2009, 18:04 »

Цитировать
Это не помогает   Я вот подумал, если Qt пересобрать в статику с ключом -static-libgcc ? Получится?
Ну вообще то так и надо))

А вы не можете помочь, с помощью чего заюзать -static-libgcc в конфиге? а то напрямую config.exe -static -no-qt3support -no-exception -release -static-libgcc не конфигурирует((
Записан
Dendy
Гость
« Ответ #9 : Декабрь 21, 2009, 18:35 »

-static-libgcc нужно дописать в mkspecs/win32-g++/qmake.conf (выше написали в какую переменную), а конфигурировать как обычно. Только лучше пробуйте на чистой копии Qt.
Записан
G-virus
Гость
« Ответ #10 : Декабрь 21, 2009, 18:50 »

Только лучше пробуйте на чистой копии Qt.

Ну я итак confclean сделаю.  Улыбающийся Спасибо за информацию. Проведу переориентацию, и сообщу о результатах)

И уточню. Мне нужно дописать в файл сделать confclean, потом дописать в qmake.conf строчку QMAKE_CXXFLAGS_RELEASE += -static-libgcc, и потом уже заного пересобрать библу?
« Последнее редактирование: Декабрь 21, 2009, 18:56 от G-virus » Записан
Dendy
Гость
« Ответ #11 : Декабрь 21, 2009, 20:04 »

Да. А перед make confclean сделать make distclean.
Записан
G-virus
Гость
« Ответ #12 : Декабрь 21, 2009, 21:55 »

у меня существует уже надпись QMAKE_CXXFLAGS_RELEASE   = $$QMAKE_CXXFLAGS_RELEASE. Мне вместо нее подставить QMAKE_CXXFLAGS_RELEASE = -static-libgcc или сделать еще одну строку QMAKE_CXXFLAGS_RELEASE и вписать в нее -static-libgcc?
Записан
Dendy
Гость
« Ответ #13 : Декабрь 21, 2009, 22:10 »

QMAKE_CXXFLAGS_RELEASE   = $$QMAKE_CXXFLAGS_RELEASE -static-libgcc
Записан
G-virus
Гость
« Ответ #14 : Декабрь 21, 2009, 22:24 »

QMAKE_CXXFLAGS_RELEASE   = $$QMAKE_CXXFLAGS_RELEASE -static-libgcc

спасибо. Щас буду пересобирать  Улыбающийся
Записан
Страниц: [1] 2 3 ... 5   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 21.