关于如何在Visual Studio的空项目中使用Boost库的一步一步的解释是什么?


当前回答

虽然Boost网站上的说明很有帮助,但这里有一个简化版本,也可以构建x64库。

只有在使用说明页第3节中提到的其中一个库时才需要这样做。(例如,使用Boost。文件系统需要编译。)如果您不使用其中任何一个,只需解压缩并运行。

构建32位库

这将安装C:\Boost\include\ Boost -(version)下的Boost头文件,以及C:\Boost\lib\i386下的32位库。请注意,库的默认位置是C:\Boost\lib,但如果您计划为多个体系结构构建,则需要将它们放在i386目录下。

解压缩Boost到一个新目录。 启动32位MSVC命令提示符,并切换到解压缩Boost的目录。 运行:引导 运行命令:b2 toolset=msvc-12.0——build-type=complete——libdir=C:\Boost\lib\i386 install 对于Visual Studio 2012,请使用toolset=msvc-11.0 对于Visual Studio 2010,使用toolset=msvc-10.0 对于Visual Studio 2017,使用toolset=msvc-14.1 将C:\Boost\include\ Boost -(version)添加到include路径中。 将C:\Boost\lib\i386添加到libs路径。

构建64位库

这将安装C:\Boost\include\ Boost -(version)下的Boost头文件,以及C:\Boost\lib\x64下的64位库。请注意,库的默认位置是C:\Boost\lib,但如果您计划为多个体系结构构建,则需要将它们放在x64目录下。

解压缩Boost到一个新目录。 启动64位MSVC命令提示符,并切换到解压缩Boost的目录。 运行:引导 运行命令:b2 toolset=msvc-12.0——build-type=complete——libdir=C:\Boost\lib\x64 architecture=x86 address-model=64 install 对于Visual Studio 2012,请使用toolset=msvc-11.0 对于Visual Studio 2010,使用toolset=msvc-10.0 将C:\Boost\include\ Boost -(version)添加到include路径中。 将C:\Boost\lib\x64添加到libs路径中。

其他回答

你需要Boost的哪些部分?很多东西都是TR1的一部分,它是随Visual Studio一起发布的,所以你可以简单地说,例如:

#include <tr1/memory>

using std::tr1::shared_ptr;

根据James的说法,这也应该工作(在c++ 0x中):

#include <memory>

using std::shared_ptr;

虽然Boost网站上的说明很有帮助,但这里有一个简化版本,也可以构建x64库。

只有在使用说明页第3节中提到的其中一个库时才需要这样做。(例如,使用Boost。文件系统需要编译。)如果您不使用其中任何一个,只需解压缩并运行。

构建32位库

这将安装C:\Boost\include\ Boost -(version)下的Boost头文件,以及C:\Boost\lib\i386下的32位库。请注意,库的默认位置是C:\Boost\lib,但如果您计划为多个体系结构构建,则需要将它们放在i386目录下。

解压缩Boost到一个新目录。 启动32位MSVC命令提示符,并切换到解压缩Boost的目录。 运行:引导 运行命令:b2 toolset=msvc-12.0——build-type=complete——libdir=C:\Boost\lib\i386 install 对于Visual Studio 2012,请使用toolset=msvc-11.0 对于Visual Studio 2010,使用toolset=msvc-10.0 对于Visual Studio 2017,使用toolset=msvc-14.1 将C:\Boost\include\ Boost -(version)添加到include路径中。 将C:\Boost\lib\i386添加到libs路径。

构建64位库

这将安装C:\Boost\include\ Boost -(version)下的Boost头文件,以及C:\Boost\lib\x64下的64位库。请注意,库的默认位置是C:\Boost\lib,但如果您计划为多个体系结构构建,则需要将它们放在x64目录下。

解压缩Boost到一个新目录。 启动64位MSVC命令提示符,并切换到解压缩Boost的目录。 运行:引导 运行命令:b2 toolset=msvc-12.0——build-type=complete——libdir=C:\Boost\lib\x64 architecture=x86 address-model=64 install 对于Visual Studio 2012,请使用toolset=msvc-11.0 对于Visual Studio 2010,使用toolset=msvc-10.0 将C:\Boost\include\ Boost -(version)添加到include路径中。 将C:\Boost\lib\x64添加到libs路径中。

一个简单的例子,让你开始在Visual Studio:

1.从这里下载并解压Boost。

2.创建一个Visual Studio空项目,使用一个不需要单独编译的示例boost库:

#include <iostream>
#include <boost/format.hpp>

using namespace std;  
using namespace boost;  

int main()  
{  
    unsigned int arr[5] = { 0x05, 0x04, 0xAA, 0x0F, 0x0D };  

    cout << format("%02X-%02X-%02X-%02X-%02X")  
            % arr[0]  
            % arr[1]  
            % arr[2]  
            % arr[3]  
            % arr[4]  
         << endl;  
}  

3.在Visual Studio项目属性中设置附加包含目录:

举个简单的例子:

如何在Visual Studio中安装Boost库

如果你不想使用整个boost库,只使用一个子集:

使用Windows中的boost库的子集

如果你现在特别想了解需要编译的库:

如何在Windows中使用Boost编译库

我可以推荐以下技巧:创造一种特殊的刺激。道具文件

打开物业管理 右键单击项目节点,选择“添加新项目属性表”。 选择一个位置并命名您的属性表(例如:c:\mystuff\boost.props) 将附加的Include和Lib文件夹修改为搜索路径。

此过程的价值是仅在希望显式包含boost的项目中包含它。当你有一个使用boost的新项目时,请:

打开物业管理器。 右键单击项目节点,并选择“添加现有属性表”。 选择boost属性表。

编辑(以下编辑来自@jim-fred):

由此产生的推动力。道具文件看起来像这样…

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros">
    <BOOST_DIR>D:\boost_1_53_0\</BOOST_DIR>
  </PropertyGroup>
  <PropertyGroup>
    <IncludePath>$(BOOST_DIR);$(IncludePath)</IncludePath>
    <LibraryPath>$(BOOST_DIR)stage\lib\;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
</Project>

它包含一个用于boost目录位置的用户宏(在本例中为D:\boost_1_53_0)和另外两个参数:IncludePath和LibraryPath。语句#include <boost/thread.hpp>将在适当的目录中找到thread.hpp(在本例中为D:\boost_1_53_0\boost\thread.hpp)。'stage\lib\'目录可能会根据安装到的目录而改变。

这提振。props文件可以位于D:\boost_1_53_0\目录中。

此外,还有一些东西我觉得很有用。为您的提升路径使用环境变量。(如何在窗口中设置环境变量,链接在底部7,8,10)BOOST_ROOT变量似乎是常见的地方了,它被设置为解压boost的根路径。

然后在属性,c++,通用,附加包含目录使用$(BOOST_ROOT)。然后,如果/当您移动到boost库的新版本时,您可以更新环境变量以指向这个新版本。随着你的项目越来越多,使用boost,你将不必为所有的项目更新“附加包含目录”。

您还可以创建一个BOOST_LIB变量,并将其指向库暂存的位置。同样地,对于链接器->附加库目录,您不必更新项目。我有一些旧的东西用vs10和vs14建立了新的东西,所以建立了两个口味的boost lib到同一个文件夹。所以如果我把一个项目从vs10移动到vs14,我不需要改变提升路径。

注意:如果你改变了一个环境变量,它不会突然在一个开放VS项目中工作。VS在启动时加载变量。所以你需要关闭VS然后重新打开它。