Vs2019配置boost库

前情提示:由于版本适配原因,我下载的是Boost1.81.0,使用的mingw64是x86_64-8.1.0-release-posix-seh-rt_v6-rev0

两个包的百度网盘链接如下

https://pan.baidu.com/s/1IJSyQqdf-lbuFG12FhDt2A?pwd=2dhi

1下载boost,官网链接如下,Boost 1.90.0(我下载了最新的boost与mingw64,但vs一直报错

我就下载了网盘连接中两个旧的)

2下载mingw64

去mingw官网下载压缩包
https://sourceforge.net/projects/mingw-w64/files/
下载速度慢的话可以去我的网盘下载,整理了mingw和boost的安装包

链接: https://pan.baidu.com/s/1IJSyQqdf-lbuFG12FhDt2A?pwd=2dhi
提取码: 2dhi

选择x86_64-win32-seh,当然选择x86_64-posix-seh也可以。一个是windows线程,一个是posix线程。

3配置环境变量,选择用户的环境变量path, 添加D:\cppsoft\mingw64\bin,具体路径看你自己的配置

4打开解压后的boost文件

解压后文件夹下有个一个bootstrap.bat文件,双击运行会生成b2.exe

在这个我文件夹下下按cmd

5执行下列命令

.\b2.exe install --toolset=msvc-14.2 --build-type=complete --prefix="D:\boost_1_81_0" link=static runtime-link=shared threading=multi debug release 

先逐一解释各参数含义

install可以更改为stage, stage表示只生成库(dll和lib), install还会生成包含头文件的include目录。一般来说用stage就可以了,我们将生成的lib和下载的源码包的include头文件夹放到项目要用的地方即可。

toolset 指定编译器,gcc用来编译生成linux用的库,msvc-14.2(VS2019)用来编译windows使用的库,版本号看你的编译器比如msvc-10.0(VS2010),我的是VS2019所以是msvc-14.2。

如果选择的是install 命令,指定生成的库文件夹要用--prefix,如果使用的是stage命令,需要用--stagedir指定。

link 表示生成动态库还是静态库,static表示生成lib库,shared表示生成dll库。

runtime-link 表示用于指定运行时链接方式为静态库还是动态库,指定为static就是MT模式,指定shared就是MD模式。MD 和 MT 是微软 Visual C++ 编译器的选项,用于指定运行时库的链接方式。这两个选项有以下区别:

/MD:表示使用多线程 DLL(Dynamic Link Library)版本的运行时库。这意味着你的应用程序将使用动态链接的运行时库(MSVCRT.dll)。这样的设置可以减小最终可执行文件的大小,并且允许应用程序与其他使用相同运行时库版本的程序共享代码和数据。

/MT:表示使用多线程静态库(Static Library)版本的运行时库。这意味着所有的运行时函数将被静态链接到应用程序中,使得应用程序不再依赖于动态链接的运行时库。这样可以确保应用程序在没有额外依赖的情况下独立运行,但可能会导致最终可执行文件的体积增大。

执行上述命令后就会在指定目录生成lib库了,我们将lib库拷贝到要使用的地方即可。 

6执行完命令会生成下列我们要用到的lib文件夹

7visual配置boost

有两种方式使用boost库,一种是配置在项目工程里,一种是配置在环境变量里,推荐配置环境变量的方式使用boost库。
这里先介绍项目中配置
我的boost库目录在D:\cppsoft\boost_1_81_0
 


打开visualstudio 创建一个控制台工程,然后右键工程选择属性
选择VC++目录---》包含目录,添加 D:\cppsoft\boost_1_81_0;
选择VC++目录---》库目录,添加 D:\cppsoft\boost_1_81_0\lib;


然后我们写一段代码测试

#include <iostream>
#include <string>
#include "boost/lexical_cast.hpp"
int main()
{
    using namespace std;
    cout << "Enter your weight: ";
    float weight;
    cin >> weight;
    string gain = "A 10% increase raises ";
    string wt = boost::lexical_cast<string> (weight);
    gain = gain + wt + " to ";      // string operator()
    weight = 1.1 * weight;
    gain = gain + boost::lexical_cast<string>(weight) + ".";
    cout << gain << endl;
    system("pause");
    return 0;
}

我们运行程序可以看到运行成功了,并且弹出了窗口

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值