[英]How do I build Boost 1.55 with Visual Studio 2013 CTP November 2013
我知道boost還不支持新的工具集,但是我還是想嘗試用它構建Boost。 我已經天真的嘗試使用Boost構建系統和選項toolset=msvc-12.0-ctp
但是它不起作用。 我相信,自Boost 1.55正式支持Visual Studio 2013(msvc-12.0)以來,這是有可能的,並且兩個版本之間只有很少的重大更改。
我的動機是我需要CTP的某些功能,因此我自己的應用程序將使用msvc編譯器的CTP版本進行編譯。 恐怕僅使用原始2013編譯器編譯Boost會導致Boost與我自己的應用程序之間的二進制不兼容。 Stephen T. Lavavej本人不保證二進制兼容性 :
-在MSVC 2013年11月CTP中重用為MSVC 2013構建的Boost Binaries的任何機會
因為這僅是編譯器,所以您可能可以避免混合匹配。 不過,我不建議這樣做。
關於如何解決這個問題有什么想法嗎? 提前致謝。
請注意,我沒有使用Visual Studio 2013 November CTP構建Boost,因此進一步的解釋純粹是理論上的。
經過一番谷歌搜索和嘗試,終於,我做到了。 因此,算法為:
從Subversion簽出最新的Boost(可能可以通過發行版發行,但是我沒有嘗試過)
svn co http://svn.boost.org/svn/boost/trunk boost-trunk
在user-config.jam
文件中指定編譯器的自定義路徑,該文件位於%BOOST_HOME%/tools/build/v2/
(其中%BOOST_HOME%
是您檢出發行版的路徑):
using msvc : 12.1 : "C:/Program Files (x86)/Microsoft Visual C++ Compiler Nov 2013 CTP/bin/cl" ;
您可以使用任意字符串而不是12.1
,只需稍后在調用b2
時在此處添加一些內容來區分工具集
別忘了在冒號前后,分號之前放置空格,並使用斜杠/
或雙反斜杠\\\\
代替反斜杠\\
。 請參閱user-config.jam
文件的注釋中的說明
確保您在行首沒有#
(即未注釋)
運行VS2013 x86 Native Tools Command prompt
或手動運行cmd.exe
,然后通過調用"C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\vcvarsall.bat" -x86
。 如果需要,將x86
更改為x64
。
將CTP編譯器的PATH
添加到PATH
變量中:
set PATH=C:/Program Files (x86)/Microsoft Visual C++ Compiler Nov 2013 CTP/bin;%PATH%
檢查發布CTP編譯器的路徑之前是否存在以下路徑:
echo %PATH%
轉到%BOOST_HOME%
並運行b2 toolset=msvc-12.1 ...<other params go there>...
在流程管理器或ProcessExplorer中,檢查b2
調用CTP編譯器,而不發布一個
不幸的是,並非所有庫都能正常運行。 有一些編譯錯誤。
也可以看看:
希望能幫助到你。 建設愉快! =)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.