1. 程式人生 > 其它 >vscode + WSL 配置 C++ 開發環境時遇到的問題

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