vscode + WSL 配置 C++ 開發環境時遇到的問題
阿新 • • 發佈:2021-11-14
按照官方的文件來配置基礎環境即可,這部分沒什麼問題。
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