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