[转]boost使用之编译库及遇到的问题
最近因为在学习网络编程相关的东西,准备学习一下boost,毕竟原生的网络编程太麻烦。看了一下其实windows下想使用起来很简单,就是下载库,然后运行脚本,然后运行exe库就出来。在把头文件和库的目录包含进去就可以了。在此详细记录一下:
0、预装准备
电脑WIN10系统,已经安装了VS2010。
1、下载boost文件
下载路径:https://www.boost.org/,建议如果是VS2010建议下载1.70.0,不要1.73.0。原因后面再讲。
2、运行脚本
管理员权限运行命令提示符,然后进入boost解压路径,运行bootbootstrap.bat。如果运行成功,会是这样的
然后在刚刚的目录下面会多了两个文件
这样就说明第二步执行成功了。
这里想强调一下有几个步骤还是挺重要的:
(1)命令提示符要以管理员权限,否者会出现下面的错误。
(2)会出现cl命令不是内部或者外部命令的问题。如下图所示:
出现上面的问题有两个解决方案
(一)修改环境变量
链接如下就不赘述了。
https://www.cnblogs.com/bodboy/p/7511195.html
(二)手动拷贝cl.exe
网上查阅的资料,搜索到cl.exe拷贝到system32下面就可以了
我执行了第一种方式不好用,第二种之后才能正常编译了。
(3)使用1.73.0编译不过。
我使用1.73.0会出现如下错误:
就一直卡在这一步,一直不动。有可能是因为我使用的是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这种。编译的这种操作很简单,最好自己编译一下。
好的,今天就到这里吧。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u011553313/article/details/106180771/