gpt4 book ai didi

c++ - 使用 MSVC 11 (VS 2012) 进行 Boost 编译

转载 作者:IT老高 更新时间:2023-10-28 12:49:17 25 4
gpt4 key购买 nike

如何使用 1.48.0 构建 Boost(我尝试了 Visual Studio C++ 11 版本) ? bootstrap.bat 找不到工具集 vc11。我将工具集 vc11 添加到 F:\Programming\boost_1_48_0\tools\build\v2\engine\build.bat 但收到一条消息:

ERROR: Cannot determine the location of the VS Common Tools folder.

编辑: Ferruccio answer也适用于 VS 2012 Express 和 Boost 1.51.0。

最佳答案

这个答案非常适合:

  • VS2012(Visual Studio 2012 更新 2)
    • VS2015(Visual Studio 2015 更新 2)
  • Windows 7 x64
    • 或 Windows 10 x64
  • Boost v1.53
    • 或 Boost v1.60

简而言之

  1. 打开 Visual Studio 2012 命令提示符。在开始菜单中:All Programs..Microsoft Visual Studio 2012..Visual Studio Tools..x64 Native Tools Command Prompt
  2. 解压boost_1_53_0.zipC:\boost153
  3. 运行bootstrap.bat
  4. 运行bjam.exe
  5. 在任何新的 C++ 项目中,包括 Boost 库的路径,如下面的屏幕截图所示。

(可选)分步说明

  1. 安装 Visual Studio 2012。
  2. 安装更新 2。
  3. 下载Boost from SourceForge .
  4. 解压到“C:\boost153”
  5. 以管理员权限打开 Visual Studio 命令提示符。从开始菜单,它的All Programs..Microsoft Visual Studio 2012..Visual Studio Tools..x64 Native Tools Command Prompt
  6. 使用 cd c:\boost153 切换到 boost 目录。
  7. 运行bootstrap.bat
  8. 运行 bjam.exe。这将构建所有库。
  9. 可能会有一些警告,但您可以忽略这些。
  10. 大约 5 分钟后编译完成,提示:

    The Boost C++ Libraries were successfully built!
    The following directory should be added to compiler include paths:
    C:/boost153
    The following directory should be added to linker library paths:
    C:\boost153\stage\lib
  11. 这很重要,我们需要将这两条路径添加到任何新的 C++ 项目中。

  12. 创建一个新的 C++ 项目。
  13. 如前几步所述,将 C:/boost153 添加到 compiler include pathC:\boost153\stage\lib链接器库路径
  14. 右击项目,选择Properties,选择Configuration Properties..VC++ Directories。请参阅下面屏幕截图中的两部分粗体文本): enter image description here
  15. 让我们运行一个简单的程序,通过添加对 foreach 循环的支持来展示 boost 的强大功能:

    // Source code below copied from:   
    // http://www.boost.org/doc/libs/1_53_0/doc/html/foreach.html
    #include "stdafx.h"

    #include <string>
    #include <iostream>
    #include <conio.h> // Supports _getch()
    #include <boost/foreach.hpp>

    int main()
    {
    std::string hello( "Hello, world!" );

    BOOST_FOREACH( char ch, hello )
    {
    std::cout << ch;
    }

    _getch();
    return 0;
    }
  16. 结果:

    Hello, world!

更多答案

2016-05-05 更新

使用 Win10 x64 + VS2015.2 + Boost v1.6.0 检查。

关于c++ - 使用 MSVC 11 (VS 2012) 进行 Boost 编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8204758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com