Win10系统中使用VS2017编译安装C++ boost库

我以编译安装 boost_1_73_0 版本为例:

首先安装VS2017(其他版本也可以),然后下载boost库的源码安装包:

boost下载地址:Boost Version History

1.选择一个需要的版本,这里我选择的是1.73.0版本

2.我们是在Windows环境编译安装可以选择这个zip压缩包

3.下载压缩包后,解压出如下文件,路径不限:

(我解压到E盘的boost_1_73_0文件夹中)

 4.打开VS2017的命令行窗口(最好是以管理员身份打开)

5.命令行中切换到你刚刚解压出来的文件夹中,然后执行bootstrap.bat文件,此时会生成b2.exe文件

(我上面是解压到“E:\boost_1_73_0”路径中的)

 6.命令行中执行上一步生成的b2.exe文件,传入安装目标路径(此过程很漫长,可能要十几分钟)

(例如我想安装在  “C:\boost_1_73_0”  路径中可以这样输入)

注意:此时同时生成的是X86和X64架构,32位和64位的静态库不是动态库。

如有特殊生成需要还能附加以下参数控制编译安装结果:

--toolset=msvc  编译器类别,可以是gcc,或者是msvc

--target-os=Windows  目标操作系统,可以是Windows,Linux

--variant=release  生成类型,可以是 debug(-gd-)或者release (-)

--threadapi=win32  线程API的实现,可以是win32或者pthread,在windows上编译就用win32

--link=static  链接库类型,可以是静态的static,也可以是shared,对应windows上的库就是.lib或者是dll

--runtime-link=static  动态还是静态链接C/C++运行时库。同样有shared (-)和static (-s-)两种方式,这样runtime-link和link可以产生4种组合方式,可以根据需要选择编译.

一位在微软做过编译器开发的大牛是这样解释的:

假设一个库A依赖于库B,我们自己的程序client依赖于库A,即:

那么,link指的是client->A,runtime-link指的是A -> B

配置

链接过程

运行时需要的文件

link=static

runtime-link=static

client通过A.a (A.lib)静态包含A;

A通过B.a (B.lib)静态包含B;

不关 .so .dll的事

client

link=static

runtime-link=shared

client通过A.a (A.lib)静态包含A;

在运行时,client要动态调用B.so (B.dll)

client

B.so (B.dll)

link=shared

runtime-link=shared

client会包含A.a (A.lib);

A会包含 B.a (B.lib);

但都只保存动态库的真正实现的stub,运行时通过stub去动态加载 A.so (A.dll), B.so (B.dll) 中的实现

client

A.so (A.dll)

B.so (B.dll)

link=shared

runtime-link=static

client会包含A.a (A.lib),但只包含真正实现的stub;

A通过B.a (B.lib)静态包含B;

运行时,client会动态调用A.so (A.dll)

client

A.so (A.dll)

--prefix=DIR  安装路径

--user-config= 用户自定义配置文件,在cross compile的时候可以用来配置编译工具链

--address-model=32  生成32位还是64位库文件

--architecture=x86  cpu架构,一般为x86或x64,嵌入式平台为arm

编译安装64位的Release版的静态链接库可以执行下面的指令:(-mt-s-)

.\b2.exe variant=release threading=multi threadapi=win32 link=static runtime-link=static --prefix=E:\boost_1_77_0 address-model=64 architecture=x86 install -j8

-j8参数代表8线程同时编译,可以提高编译安装的速度。

 7.编译安装boost库完成,在我输入的安装目标路径中会产生include和lib两个文件夹

<include> 包含文件

<lib>  静态库文件

8.安装完成。保留第7步得到的两个文件夹(include和lib)即可,其他都没用了可以删掉了,除出你留着可能会编译成其他架构,例如改成arm架构,改成动态库等你就需要重新编译。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在 Windows 10 下编译 Boost ,需要先安装 Visual Studio 和 Boost 的源代码,具体步骤如下: 1. 安装 Visual Studio:访问 Visual Studio 官网(https://visualstudio.microsoft.com/),下载并安装最新版本的 Visual Studio。 2. 下载 Boost 源代码:访问 Boost 官网(https://www.boost.org/),点击 Download 下载最新版本的 Boost 源代码。将下载后的源代码解压到任意目录下,例如在 C:\ 目录下解压。 3. 打开 Visual Studio 命令提示符:在 Windows 开始菜单搜索“Visual Studio 命令提示符”,并以管理员身份运行。 4. 进入 Boost 源代码目录:在命令提示符输入以下命令,进入 Boost 源代码的根目录: ``` cd C:\boost_1_76_0 ``` 这里假设 Boost 源代码解压到了 C:\boost_1_76_0 目录下。 5. 配置编译选项:输入以下命令,配置 Boost编译选项: ``` bootstrap.bat ``` 这个命令将自动检测系统环境,并生成编译所需的文件。 6. 编译 Boost :输入以下命令,开始编译 Boost : ``` b2.exe --build-type=complete --toolset=msvc-14.2 architecture=x86 address-model=64 install ``` 这个命令将使用 Visual Studio 的 MSVC 编译编译 Boost 。其,--toolset 参数指定编译工具集为 MSVC 14.2,--build-type 参数指定编译类型为 complete,--architecture 参数指定编译架构为 x86,--address-model 参数指定编译的地址模型为 64 位。最后的 install 参数指定将编译结果安装到默认位置。 7. 验证 Boost :在 Visual Studio 创建一个新的 C++ 项目,编写一个测试程序并链接 Boost ,验证 Boost 是否成功编译。 以上是在 Windows 10 下编译 Boost 的基本步骤,具体的编译选项和命令可能会因 Boost 版本和系统环境而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值