2012-02-17 17 views
3

私はMinGWのバージョンが異なる2つのビルド環境を持っています.1つはQt用に、もう1つはMinGW用です。しかし、どちらも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を含める必要があること。しかし、私は実行可能ファイルをビルドしているわけではないので、どこで使用するのかはわかりませんが、スタティックライブラリです。

答えて

3

スタティックライブラリは、オブジェクトファイルのコレクションです。アーカイブです。リンクして作成するのではなく、アーカイブプログラム(多くの場合ar)を使用して作成します。別の静的ライブラリのオブジェクトファイルを新しいライブラリに含めるには、それらをマージするアーカイブプログラムに関連するオプションを見つける必要があります。

+2

「ar」のオプションについては、http://stackoverflow.com/questions/3821916/how-to-merge-two-ar-static-libraries-into-one/9330267#9330267を参照してください。 – osgx

+0

よろしくお願いします。ソース:http://sourceware.org/binutils/docs-2.22/binutils/ar-cmdline.html#ar-cmdline – eriktous

+0

、もう1つはlibtool:http://stackoverflow.com/a/8170851/196561 – osgx

関連する問題