vscode怎样包含boost库?

问题遇到的现象和发生背景

在vscode中引用boost库会报头文件找不到?
1、在编辑器中是能直接跳转头文件的
2、如果不用boost库,写一些简单例子是可以编译的
3、确定boost的安装路径是正确的:

img

4、一些配置如下:

img

boost中的头文件能跳转:

img

试着去创建task.json,但是也没用:

img

4.在vscode中使用boost库

现在有很多小伙伴不用臃肿的IDE而改用vscode来写代码了。

vscode配置C/C++的环境可以看我这篇文章:vscode配置C/C++编译环境

本来应该是在这里面配置包含目录的,但是不知道为啥一直报错fatal error: boost/config.hpp: No such file or directory

"includePath": [
"${workspaceFolder}/**",
"E:/wenjian/cs/code/boost_1_76_0_2/boost_1_76_0/"
]
1
2
3
4
所以,没办法,我把boost目录拷贝到D:\MinGW\include,即gcc编译器的标准包含文件中,发现是可以正常运行的。

运行生成任务成功

在终端上键入 ./main.exe,输出

PS E:\wenjian\cs\code\boost_1_76_0_2\boost_1_76_0> ./main.exe
number: 123 123.012
string: 123 123.0123456789
bad lexical cast: source type value could not be interpreted as target
1
2
3
4
大功告成,总算能用了。

原因并不知道,但是你看下面的gcc命令,你的task.json并没有生效:

img

大概是配置出了问题,你再去了解一下task.json到底怎么用吧。

问题找到了。
vscode中没有自带的编译器,为了运行代码,我安装了Code Runner插件。

img

Code Runner中有设置各种语言的编译命令:

img

此时如果使用g++编译,并且包含boost库的话,只需要用 -I指定boost头文件目录 -L 指定链接哪些库就行了。具体设置是在这个地方:

img

项目属性→ C/C++ → 通用→ 其他引用目录,添加D:\Program Files\boost_1_78_0
如果你正在使用非头文件库,你还应该在项目属性→链接器→常规→附加库目录中添加D:\Program Files\boost_1_78_0\路径。
如果还解决不了,你在系统里搜索filesystem.hpp,复制到D:\Program Files\boost_1_78_0\boost目录下