如何将库静态链接到另一个静态库?

时间:2012-02-17 19:35:59

标签: c qt static linker mingw

我有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 个答案:

答案 0 :(得分:3)

静态库只是一个对象文件的集合 - 一个存档。您不是通过链接创建它,而是通过归档程序(通常为ar)创建它。要将另一个静态库的目标文件包含在新的静态库中,您必须找到归档程序的相关选项以合并它们。