含むブースト::ファイルシステムがリンクエラーを生成します
質問
最初のオフ[OK]を、私はboost_systemとboost_filesystemにリンクしています。
私のコンパイラはMinGWののカスタムビルドはGCC 4.3.2 のである。
だから私は含まれている場合:
#include "boost/filesystem.hpp"
私は、次のようなリンクエラーが出ます
..\..\libraries\boost\libs\libboost_system.a(error_code.o):error_code.cpp:
(.text+0xe35)||undefined reference to `_Unwind_Resume'|
..\..\libraries\boost\libs\libboost_system.a(error_code.o):error_code.cpp:
(.eh_frame+0x12)||undefined reference to `__gxx_personality_v0'|
あなたはどちらGNU Cコンパイラ、gccでC ++プログラムをリンクしようとすると、私が見つけたちょっと検索した後、最も一般的です。しかし、私は実行している、そしてそれは間違いグラムとリンクされてのコード::ブロックの正確なビルドコマンドをプリントアウト++ます。
私はこれが含まコメントアウトした場合は、、すべてが正常に動作します。
任意のアイデア?また、側面として、誰もがブースト用のWindowsバイナリを取得するには良い場所を知っていますか?ビルドシステムは私に問題を与えているので、私はこのカスタムMinGWのパッケージに付属しているいくつかのバイナリを使用しています。
解決
[OK]を、私は問題を発見しました。それは少し複雑です。
GCCは次第には4.xのブランチで対応14882 ISになってきています。彼らは上に行くと、彼らは非推奨非標準苦情の機能を削除されます。
4.1.xのが唯一の彼らは非推奨となり、削除していないように思えますが、、4.3.xは、実際にそれらを取り除く持っているようです。これが意味することは4.3.xと大きいが、
(非推奨となりました削除された機能を使用)3.xのブランチにコンパイルさのものといくつかの下位互換性の問題を持っています私は、私が使用したものので、どんなにGCC 3.xでは、4.1.xのと4.3.xでコンパイルされたバイナリのミックスとマッチの組み合わせを使用していた、私は同様のエラーを得た、なぜなら少なくとも一つのバイナリI私は、現時点ではしようとしていたコンパイラとの互換性がありませんでしたにリンクしてます。
私は今、GCC 4.1.2を使用していますし、私のバイナリのほとんどは、それを使用してコンパイルされています。私はまだどのようにこれまで私はまだ4.3.xにアップグレードしていないです理由である、3.xのからいくつかのバイナリを使用しています。
それは書くことだったよりも読みあまり混乱した希望...
<のhref = "http://archives.devshed.com/forums/development-94/what-is-the-preferred-gcc-version-3-x-or-4t-2287902.html" のrel = 「nofollowをnoreferrer」>こののは、彼らが
4.1.xのであったように問題のいくつかに取り組むの良いポストのようです他のヒント
Windowsバイナリ:www.boost.org - あなたがそれらをしたくないMingGW上++グラムを使用している場合は - 「はじめに」のページを参照してください。それを理解する簡単な方法は、MingGWので、本当にあなたが実際にWindowsを使用していないオペレーティングシステム内のオペレーティングシステムのようです。あなたが持っているものはおそらく正しいです。
のlibファイルが正しく何とかでリンクされていないようにかかわらず、あなたのコードで何が起こっているかわからない、聞こえます。あなたが実際に明示的に名前を付けないように自分で名前にそのlibにファイルを後押ししていますが、右のパス上のブーストのためのlibファイルを持っている必要があります(と彼らがいない可能性がある、彼らはあまりにも建て/インストールされていることを確認してください)。私はグラムで正しい道の上にそれらを取得するかどうかはわかりません++私はMingGWを使用していないので、私はVisual Studioにブーストを使用しました。