2011-12-13 8 views
54

この質問に対する回答Why can't clang with libc++ in c++0x mode link this boost::program_options example?は、「clang ++ -stdlib = libC++を使用してboostを再構築する必要があります。clang ++/libC++でBoostをコンパイル/リンクするには?

私はclang v3.0でMacOS Lionを使用しています。 clangを使ってBoost v1.48.0をビルドし、libC++とリンクさせるにはどうすればよいですか?

更新:

using clang-darwin 

...打ち鳴らす代わりにgccのでブーストを構築します:私は、次のとユーザーconfig.jamファイルを作成しました。 libstdC++ではなくlibC++にリンクするにはどうすればよいですか?

答えて

85

これを行う方法もわかりませんでした。しかし、hereと試行錯誤した後、

$ ./b2 clean 
$ ./b2 toolset=clang cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++" 

多くの警告が表示されます。信号ライブラリはLWG 2059のためビルドに失敗します。しかし、それ以外の場合はと思ってと思っています。

+2

はい、それは動作します!ありがとうございました。 –

+0

boost :: signals2( '#include ')にboost :: signalと同様のAPIがあり、ヘッダーのみなので、シグナルをビルドできないこともありません。 –

+0

ブースト::シグナルが構築されていないだけですか?私は完全なビルド時に多くのバリエーションがないと思います。 –

15

別のオプションは、Homebrewを使用することです:

brew install boost --c++11 

すべてのオプションについての情報を取得するには、使用します。

brew info boost 
+2

これは 'libstdC++'ではなく 'libC++'とリンクしていますか? –

+0

clangが利用可能な場合、libC++とリンクします。 –

+1

"brew install boost --C++ 11"と "otool -L /usr/local/Cellar/boost/1.57.0/lib/libboost_regex-mt.dylib"を実行し、Boostが現在リンクしていることを確認できますlibC++。ありがとう! –

関連する問題