boost使用之编译库及遇到的问题

    最近因为在学习网络编程相关的东西,准备学习一下boost,毕竟原生的网络编程太麻烦。看了一下其实windows下想使用起来很简单,就是下载库,然后运行脚本,然后运行exe库就出来。在把头文件和库的目录包含进去就可以了。在此详细记录一下:

0、预装准备

电脑WIN10系统,已经安装了VS2010。

1、下载boost文件

下载路径:https://www.boost.org/,建议如果是VS2010建议下载1.70.0,不要1.73.0。原因后面再讲。

2、运行脚本

管理员权限运行命令提示符,然后进入boost解压路径,运行bootbootstrap.bat。如果运行成功,会是这样的

boost使用之编译库及遇到的问题

然后在刚刚的目录下面会多了两个文件

boost使用之编译库及遇到的问题

这样就说明第二步执行成功了。

这里想强调一下有几个步骤还是挺重要的:

(1)命令提示符要以管理员权限,否者会出现下面的错误。

boost使用之编译库及遇到的问题

(2)会出现cl命令不是内部或者外部命令的问题。如下图所示:

boost使用之编译库及遇到的问题

出现上面的问题有两个解决方案

(一)修改环境变量

链接如下就不赘述了。

https://www.cnblogs.com/bodboy/p/7511195.html

(二)手动拷贝cl.exe

网上查阅的资料,搜索到cl.exe拷贝到system32下面就可以了

boost使用之编译库及遇到的问题

我执行了第一种方式不好用,第二种之后才能正常编译了。

(3)使用1.73.0编译不过。

我使用1.73.0会出现如下错误:

boost使用之编译库及遇到的问题

就一直卡在这一步,一直不动。有可能是因为我使用的是VS2010,好像查资料2015之后才行,这个不是很确认,但是我两台电脑都这样。

3、运行b2.exe生成lib。

运行b2.exe之后就会在根目录下生成stage文件夹,里面就是lib文件了。至此库就好了。

4、在VS里面添加头文件和附件库目录。

boost有一个比较好的地方,lib库不需要自己手动添加名称,就直接把路径加上就好。

这里有一个问题注意,最好不要使用别人已经编译好的库,如果别人编译器版本比你高,你直接拷贝的库是找不到的。比如你拷贝了libboost_atomic-vc140-mt-gd-x32-1_70.lib这种库,但是你是VS2010,编译器就会报错找不到libboost_atomic-vc100-mt-gd-x32-1_70.lib这种。编译的这种操作很简单,最好自己编译一下。

好的,今天就到这里吧。