如何使用Visual Studio 2013 CTP 2013年11月11日建立Boost 1.55



我知道新的工具集尚未得到Boost的支持,但是无论如何我都想尝试构建Boost。我天真地尝试使用Boost Build System和选项toolset=msvc-12.0-ctp,但它不起作用。我相信这是可能的,因为Boost 1.55正式支持Visual Studio 2013(MSVC-122.0),并且两个版本之间只有很少的破坏变化。

我的动机是我需要CTP的某些功能,因此我自己的应用程序将与MSVC编译器的CTP版本一起编译。恐怕只需与原始的2013年编译器一起编译Boost,将在Boost和我自己的应用程序之间造成二进制不兼容。Stephen T. Lavavej本人不能保证二进制兼容性:

- 在MSVC 2013年11月11月为2013年11月的MSVC建立的Boost Binaries的任何机会

因为这是仅编译器的,因此您可能可以摆脱混合和匹配。我不建议这样做。

关于如何解决这个问题的想法?预先感谢。

请注意,我没有使用Visual Studio 2013 11月CTP构建Boost,因此进一步的解释纯粹是理论上的。

在谷歌搜索和尝试之后,最后,我做到了。因此,算法是:

  1. 查看Subversion的最新提升(可能可以使用发行版来完成,但我没有尝试过)

    svn co  http://svn.boost.org/svn/boost/trunk boost-trunk 
    
  2. 指定位于%BOOST_HOME%/tools/build/v2/中的user-config.jam文件中的编译器的自定义路径(其中%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文件的评论中的说明

    • 确保行开始时没有#(即未评论)

  3. 运行VS2013 x86 Native Tools Command prompt或手动运行cmd.exe,然后通过调用"C:Program Files (x86)Microsoft Visual Studio 12.0VCvcvarsall.bat" -x86设置环境。如果需要,将x86更改为x64

  4. 将CTP编译器的路径添加到PATH变量:

    set PATH=C:/Program Files (x86)/Microsoft Visual C++ Compiler Nov 2013 CTP/bin;%PATH%
    
  5. 检查释放一个路径之前,请检查CTP编译器的路径

    echo %PATH%
    
  6. 转到%BOOST_HOME%并运行b2 toolset=msvc-12.1 ...<other params go there>...

  7. 在Process Manager或ProcessExplorer中检查b2是否调用CTP编译器,并且不发布一个

  8. 不幸的是,并非所有库都可以构建正常。有一些编译错误。

另请参见:

  • 这个答案
  • Boost-Build文档的这一页

希望它有帮助。快乐的建筑!=)

相关内容

最新更新