23

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 Preview でブーストを使用することは可能ですか?

4

4 に答える 4

24

はい。可能です。

考えられる解決策は次のとおりです。

  1. Boost 1.53をビルドしてみてください。あまり新鮮ではありませんが、何らかの奇妙な理由で問題なくビルドできます。
  2. 本当にブースト 1.54 が必要な場合(新しいログ ライブラリは良さそうです :))、この差分パッチをブースト 1.54 ディストリビューションに適用してみてください。リビジョン 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 RTM を使用して 1.55.0 ビルドをブースト

ハッピーブースト!

于 2013-07-03T06:06:21.380 に答える
11

自動リンク ブースト機能を使用する場合は、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__)
于 2013-07-04T10:26:43.497 に答える
4

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

于 2013-07-31T21:47:39.830 に答える
0

Visual Studio 2013 Update 4 と Boost 1.54 でこの問題が発生しましたが、Boost 1.57 に更新すると修正されました。

于 2015-02-17T06:44:29.453 に答える