web-dev-qa-db-ja.com

新しいVisual Studio 2013プレビューでブーストをビルドするにはどうすればよいですか?

ビルドしようとすると Boost 1.54 for Visual Studio 2013 Preview (MSVC12)は警告します:

不明なコンパイラバージョン-構成テストを実行して結果を報告してください

そしてエラーで失敗します:

boost_1_54_0\boost/iterator/detail/facade_iterator_category.hpp(166):エラーC2039: 'assert_not_arg':は 'boost :: mpl'のメンバーではありません

MSVC11の古いライブラリには互換性がないようです。

私は本当に本当に新しいIDE /コンパイラバージョンをテストしたいので、ブーストが必要です。では、新しいVisual Studio 2013プレビューでブーストを使用することは可能ですか?

はい。可能です。

可能な解決策は次のとおりです。

  1. ビルドしてみてください Boost 1.5 :新鮮すぎるわけではありませんが、不思議な理由で問題なくビルドできます。
  2. really-reallyがBoost 1.54を必要とする場合(新しいログライブラリは良さそうです:))、Boost 1.54ディストリビューションに this diff-patchを適用してみてください。リビジョン84920に最適ですが、他の方法も試すことができます。このパッチの作成者ではないことに注意してください。
  3. Subversion を使用して最新のリビジョンを取得してください:svn co http://svn.boost.org/svn/boost/trunk boost-trunk。これを読んでいる間は、問題は貢献者によって既に修正されている可能性があります。

編集:2013年8月26日

ブーストの人々がこれらの問題を修正したようです。最新のSVNリビジョンsvn co http://svn.boost.org/svn/boost/trunk boost-trunkは正常にビルドされます。彼らに感謝!

編集:2013年12月4日

TheArtTrooperコメントからの引用:

Visual Studio 2013を使用したBoost 1.55.0ビルドRTM追加のパッチなし

ハッピーブースト!

自動リンクのブースト機能を使用する場合は、boost/config/auto_link.hppにもパッチを適用する必要があります。ファイルを次のように変更しました。

    // vc10:
#    define BOOST_LIB_TOOLSET "vc100"

#  Elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)

     // vc11:
#    define BOOST_LIB_TOOLSET "vc110"

#  Elif defined(BOOST_MSVC)

     // vc12:
#    define BOOST_LIB_TOOLSET "vc120"

#  Elif defined(__BORLANDC__)
11
TheArtTrooper

Lars Viklundが提供するいくつかのパッチ のおかげで、Boost 1.54(およびそれに依存するプロジェクト)をビルドできました。執筆時点では、パッチの最初の2つはSVNにコミットされていました-リビジョン85177。

4
Robert Husák

Visual Studio 2013 Update 4とBoost 1.54でこの問題が発生しました。Boost1.57にアップデートすると修正されました。

0
watbywbarif