【问题标题】:Boost + Visual Studio 2010 + Windows Platform SDK 7.1Boost + Visual Studio 2010 + Windows 平台 SDK 7.1
【发布时间】:2010-09-14 06:06:25
【问题描述】:

谁能告诉我 bjam 的命令行开关或其他可以使用新的 Windows Platform SDK 7.1 工具链使用 VS2010 进行 boost 编译的东西?这是您可以在普通的 Visual Studio 项目中设置的选项。默认为 v100 平台 7.0 工具链的变体。提前致谢。

【问题讨论】:

  • IIRC Windows SDK 7.1 使用与 VS 2010 相同的 C++ 编译器和 CRT,因此只需从 VS 2010 命令提示符构建就足够了。
  • No 默认情况下 VS 2010 使用所谓的 v100,它是 7.0a 的变体,我很确定。谢谢。
  • 好的,刚刚发现这篇文章blogs.msdn.com/b/windowssdk/archive/2010/04/07/… 说 VS2010 确实使用了最新版本的标头,但没有具体说 7.1。它确实说在大多数情况下不需要切换。我仍然想知道如何完成这个,即使它可能没有任何区别。谢谢。
  • VS 2010 和 WSDK 7.1 (blogs.msdn.com/b/windowssdk/archive/2010/04/01/…) 中的工具集基本上是相同的。除此之外,您担心哪些平台特定的标头会影响提升?
  • 实际上,尝试只打开“Windows SDK 7.1 命令提示符”而不是“Visual Studio 命令提示符”,然后按照我下面的说明进行操作。

标签: windows visual-c++ boost


【解决方案1】:

在你的环境中试试这个

set SdkTools=c:\Program Files\Microsoft SDKs\Windows\v7.1\Bin 

call "%SdkTools%\SetEnv.Cmd" /xp /x86 

假设您安装了 Windows SDK。信息来自here - 可能还有更多工作要做,但这对我来说是正确的。

【讨论】:

    【解决方案2】:

    为 VS 2010 构建 boost 1.43.0 库:

    • 下载并解压到 C:\Temp\boost_1_43_0
    • 启动 Visual Studio 2010 命令提示符
    • Build BJam

    cd C:\Temp\boost_1_43_0\tools\jam\src

    build.bat

    cd C:\Temp\boost_1_43_0

    tools\jam\src\bin.ntx86\bjam.exe --with-regex link=static runtime-link=static threading=multi variant=debug,release address-model=32,64

    可能需要分两个阶段构建,仅使用address-model=32,然后仅使用address-model=64。在这种情况下,我们选择构建静态链接到 C 运行时的库并静态链接到 boost lib 本身。

    使用--with 构建非基于头文件的库,如正则表达式。注意 stage/lib 将在每次地址模型构建后被覆盖,但所有库始终保存在 bin.v2 中。

    【讨论】:

    • 刚刚注意到 boost 1.44 已经发布。我指定了 boost 1.43,因为这是我不久前使用上面构建的。
    • 感谢有关 boost 和 Visual Studio 的一般信息,但这并不是我要问的。我专门询问如何使 bjam 使用 Windows Platform SDK 7.1 工具链,因为默认是 v100 平台 SDK 7.0a 的变体。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-08-14
    • 2012-06-21
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多