vscode + WSL 配置 C++ 开发环境时遇到的问题

按照官方的文档来配置基础环境即可,这部分没什么问题。

https://code.visualstudio.com/docs/cpp/config-wsl

配置好环境(c_cpp_properties.json、tasks.json、launch.json)之后,我尝试用 vscode build uWebsocket 的官方示例 main.cpp,遇到了一系列报错,记录如下:

  • 报错一:fatal error: uWS.h: No such file or directory

这是因为:vscode 的 c_cpp_properties.json 配置只是用来代码提示,build 的时候不会读这个配置,所以要在 tasks.json 中补充 g++ 的编译参数,指定在 /usr/include/uWS/ 路径下查找头文件 uWS.h。

需要注意:/usr/include/uWS/ 最后的斜杠必须要有。

  • /usr/bin/ld: cannot find -luWS -lpthread -lz -lssl

这是因为:tasks.json 中的 args 字段不能包含空格,不同参数必须分开写。

错误的写法:

vscode + WSL 配置 C++ 开发环境时遇到的问题

正确的写法:

vscode + WSL 配置 C++ 开发环境时遇到的问题

 

查问题的过程中用到了一些命令,记录如下:

g++ 直接打印搜索路径:

        g++ -print-search-dirs

g++ 打印详细信息:

        --verbose

        打开/关闭 --verbose 选项,编译输出会有所不同

vscode + WSL 配置 C++ 开发环境时遇到的问题

 

查看 include 搜索路径:

echo | g++ -v -x c++ -E -

查看 ld 命令搜索路径

ld --verbose | grep SEARCH

查看库文件所在路径,以 libuWS.so 为例

ldconfig -p | grep libuWS

刷新库文件缓存

sudo ldconfig

 

上一篇:maven把依赖模块的resources打包进来


下一篇:连锁不平衡LD以及相关式子的推导