VS2017使用Boost库中出现的小问题

前言

首先说下原先使用Boost的配置:sublime3,Boost1.64.0和g++4.9.2

在之前学习Boost过程中出现了类似以下的问题

// undefined reference to boost::system::system_category() when compiling

undefined reference to boost::system::system_category()

幸好在stackover上找到类该问题的答案,原来是编译的时候少了-lboost_system参数,但由于在该配置下,加入参数会导致编译失败,而且由于asio库在如上配置的使用失败,导致我使用了VS2017加Boost1.64.0的配置。

其中编译的命令是:

g++ -Wall -pthread -std=c++14 filename.cpp -o filename -lboost_system

Boost安装

Boost在Windows下的安装网上有一大把,讲的也比我详细,所以就不细讲了。

在官网下载Boost库

BoostDown

BoostVersion

下载完后进行解压,运行目录中的

BoostLibrary

完成后会生成bjam/b2,在最先的配置过程中,我直接点击这两个,最后生成了一系列文件,我以为这样就完成了。

VS2017配置

在VS2017中这样是可以用的,只需要(例如我自己的,下面的路径记得改为你安装Boost的相应路径)

  1. 选中当前project->Properties->Configuration Properties->C/C++->General: Additional Include Directories:
    设置 D:\boost_1_64_0\boost_1_64_0

  2. 选中当前project->Properties->Configuration Properties->Linker->General: Additional LibraryDirectories:
    设置 D:\boost_1_64_0\boost_1_64_0\stage\lib

在使用asio库的时候,提示我说没有找到

libboost_regex-vc141-mt-gd-1_55.lib

按照网上的,一般来说没找到是因为没有在项目中配置上面两个路径,但实际上我配置了这两个路径,而我在这个路径中确实没有看到

libboost_regex-vc100-mt-gd-1_55.lib

原因是因为没有执行

bjam stage --toolset=msvc-12.0 --stagedir="D:\boost_1_64_0\boost_1_64_0"
link=static runtime-link=static threading=multi debug release

只需要在VS2017中

VS2017Command

执行这命令就行了,记得要在boost的目录下执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值