Как статически связать библиотеку с другой статической библиотекой? - PullRequest
3 голосов
/ 17 февраля 2012

У меня есть 2 среды сборки с разными версиями MinGW: одна настроена на Qt, а другая нет. Оба, однако, имеют статические библиотеки-заглушки Qt (которые в конечном итоге фактически связываются с dll). Проблема в том, что я хочу собрать статическую библиотеку в Qt MinGW, а затем включить ее в не Qt MinGW. Я получаю следующие ошибки ссылки при попытке:

moc_browser.cpp:(.eh_frame+0x11): undefined reference to `___gxx_personality_v0'
browser.cpp:(.text+0x213): undefined reference to `__Unwind_Resume'

Я обнаружил, что Qt MinGW динамически связывается со стандартными библиотеками и мне нужно включить опцию -static-libgcc. Однако я не знаю, где его использовать, поскольку я не создаю исполняемый файл, а скорее статическую библиотеку.

1 Ответ

3 голосов
/ 17 февраля 2012

Статическая библиотека - это просто набор объектных файлов - архив. Вы создаете его не по ссылкам, а с помощью программы архивации (часто ar). Чтобы включить объектные файлы другой статической библиотеки в новую, вы должны найти соответствующие опции для программы архивации, чтобы объединить их.

...