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 字段不能包含空格,不同参数必须分开写。

错误的写法:

正确的写法:

 

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

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

        g++ -print-search-dirs

g++ 打印详细信息:

        --verbose

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

 

查看 include 搜索路径:

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

查看 ld 命令搜索路径

ld --verbose | grep SEARCH

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

ldconfig -p | grep libuWS

刷新库文件缓存

sudo ldconfig

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM