2013-07-03 44 views
23

當試圖建立Boost 1.54Visual Studio 2013 Preview(MSVC12)它警告說:如何使用新的Visual Studio 2013預覽來增強效果?

Unknown compiler version - please run the configure tests and report the results

,然後失敗,錯誤:

boost_1_54_0\boost/iterator/detail/facade_iterator_category.hpp(166) : error C2039: 'assert_not_arg' : is not a member of 'boost::mpl'

,看起來像從MSVC11老庫是不兼容的。

我真的很想測試新的IDE /編譯器版本,需要提升。那麼,是否可以在新的Visual Studio 2013 Preview中使用boost?

回答

24

是的。有可能的。

可能的解決方案是:

  1. 嘗試建立Boost 1.53:不算新鮮,但由於一些奇怪的原因,它建立就好了。
  2. 如果你確實需要Boost 1.54(新的日誌庫看起來不錯:)),試着將this diff-patch應用到你的Boost 1.54分配版。它最適合修訂版84920,但您也可以嘗試其他任何其他版本。請注意,我不是此修補程序的作者。
  3. 嘗試獲得最新修訂版Subversionsvn 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建立良好。感謝他們!

編輯:12月4日從TheArtTrooper評論2013

報價:

Boost 1.55.0 builds with the Visual Studio 2013 RTM without any additional patches

快樂提升!

+0

能否請您解釋一下爲什麼需要在補丁中的以下內容:'#如果_MSC_VER <1800 &&(!_MSC_FULL_VER <170051025 ||定義(BOOST_MSVC_ENABLE_2012_NOV_CTP))' –

+0

這裏補丁只是增加了檢查MSVC版本是否比1800低( Visual Studio 2013,又名「msvc12」),並將其與原始檢查相結合。原始行檢查msvc是否不包含「更新3」或11月份的編譯器更新。如果版本檢查失敗,提升限制爲不使用某些C++ 11功能,那些不可用的msvc版本不支持。請注意,我不是此修補程序的作者(我會將其添加到答案中) – Drop

+0

好的,我明白了。實際上,原來的條件似乎比'_MSC_VER <1800'更強*,所以看起來修補這條線是不必要的。 –

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__) 
+2

Boost 1.55.0用Visual Studio 2013 RTM構建而沒有任何額外的補丁。 – TheArtTrooper

0

我有這個問題,Visual Studio 2013 Update 4和Boost 1.54,更新到Boost 1.57修復了它。

相關問題