Неопределенные ссылки при попытке связать приложение Qt с моей статической библиотекой

У меня есть статическая библиотека, которую я создал с помощью MinGW, я пытаюсь связать эту библиотеку из приложения Qt. Я продолжаю получать ошибки компоновщика, вызванные одним из объектных файлов в библиотеке. Этот файл фактически объявляет пару заголовков Boost, один для использования shared_ptr, а другой, чтобы я мог сделать класс не копируемым. Я полагаю, что использование этой функциональности повышения является причиной проблемы, но я понятия не имею, почему. Если я закомментирую классы в приложении Qt, которые используют класс, определенный в файле, приложение Qt связывается нормально. Это часть ошибки вывода:

C: \ blah \ build \ windows \ mingw \ libfoo.a (foo_ctis.cpp.obj): foo_ctis.cpp :(. Text + 0x10a): неопределенная ссылка на `__gxx_personality_sj0 '

C: \ blah \ build \ windows \ mingw \ libfoo.a (foo_ctis.cpp.obj): foo_ctis.cpp :(. Text + 0x12f): неопределенная ссылка на `_Unwind_SjLj_Register '

C: \ blah \ build \ windows \ mingw \ libfoo.a (foo_ctis.cpp.obj): foo_ctis.cpp :(. Text + 0x203): неопределенная ссылка на `_Unwind_SjLj_Resume '

C: \ blah \ build \ windows \ mingw \ libfoo.a (foo_ctis.cpp.obj): foo_ctis.cpp :(. Text + 0x20e): неопределенная ссылка на `_Unwind_SjLj_Unregister '

C: \ blah \ build \ windows \ mingw \ libfoo.a (foo_ctis.cpp.obj): foo_ctis.cpp :(. Text + 0x226): неопределенная ссылка на `__gxx_personality_sj0 '

C: \ blah \ build \ windows \ mingw \ libfoo.a (foo_ctis.cpp.obj): foo_ctis.cpp :(. Text + 0x24b): неопределенная ссылка на `_Unwind_SjLj_Register '

C: \ blah \ build \ windows \ mingw \ libfoo.a (foo_ctis.cpp.obj): foo_ctis.cpp :(. Text + 0x31f): неопределенная ссылка на `_Unwind_SjLj_Resume '

C: \ blah \ build \ windows \ mingw \ libfoo.a (foo_ctis.cpp.obj): foo_ctis.cpp :(. Text + 0x32a): неопределенная ссылка на `_Unwind_SjLj_Unregister '

C: \ л \ построить \ Windows \ MinGW \ libfoo.a (foo_ctis.cpp.obj):. Foo_ctis.cpp :( текст $ _ZN5boost6detail12shared_countC1IN3foo25foo_SomeClassImplEEEPT_ [подталкивание :: подробно :: shared_count :: shared_count (Foo :: foo_SomeClassImpl *)] + 0xc): неопределенная ссылка на `__gxx_personality_sj0 '

C: \ л \ построить \ Windows \ MinGW \ libfoo.a (foo_ctis.cpp.obj):. Foo_ctis.cpp :( текст $ _ZN5boost6detail12shared_countC1IN3foo25foo_SomeClassImplEEEPT_ [подталкивание :: подробно :: shared_count :: shared_count (Foo :: foo_SomeClassImpl *)] + 0x31): неопределенная ссылка на `_Unwind_SjLj_Register '

C: \ л \ построить \ Windows \ MinGW \ libfoo.a (foo_ctis.cpp.obj):. Foo_ctis.cpp :( текст $ _ZN5boost6detail12shared_countC1IN3foo25foo_SomeClassImplEEEPT_ [подталкивание :: подробно :: shared_count :: shared_count (Foo :: foo_SomeClassImpl *)] + 0xfb): неопределенная ссылка на `_Unwind_SjLj_Resume '

C: \ л \ построить \ Windows \ MinGW \ libfoo.a (foo_ctis.cpp.obj):. Foo_ctis.cpp :( текст $ _ZN5boost6detail12shared_countC1IN3foo25foo_SomeClassImplEEEPT_ [подталкивание :: подробно :: shared_count :: shared_count (Foo :: foo_SomeClassImpl *)] + 0x106): неопределенная ссылка на `_Unwind_SjLj_Unregister 'collect2: ld вернул 1 состояние выхода

Еще одна вещь, которую стоит упомянуть, это то, что я использую указатель на реализацию в этом классе. Любая помощь приветствуется.

Решено: Я выяснил, что у меня на пути была более старая версия GCC, которая была включена в Beng, до того, как моя версия MinGW предоставила GCC. Старая версия была включена в пакет GNUStep, который я имел некоторое время назад. Я думаю, что конфигурация этих разных версий вызывала проблемы. Спасибо Кемиисто, который был на правильном пути в решении проблемы.

Ответы на вопрос(3)

Ваш ответ на вопрос