VS Code編譯file not found問題

2021-09-20 04:16:11 字數 1303 閱讀 6336

最近在使用visual studio code的時候,編寫c++**,往往需要引入第三方的標頭檔案,如下所示:

#include "rapidjson/document.h"

#include "rapidjson/writer.h"

#include "rapidjson/stringbuffer.h"

// 省略餘下**

但是如果這些標頭檔案的路徑不在預設的搜尋路徑中(/usr/include或者/usr/local/include),那麼在編譯的時候,就會報錯,提示「file not found」,按照網上搜尋的很多方法,都是通過修改c_cpp_properties.json,在includepath中加入相應的路徑即可(shift+command+p,選擇c/c++: edit configurations即可開啟)。但是實際測試發現,即使在includepath中新增了路徑,也會報同樣的錯誤。個人懷疑這個地方的includepath,實際並沒有新增到task的path中。

經過測試發現,如果標頭檔案指定絕對路徑或者想對路徑是ok的,如下所示:

// 相對路徑

#include "../../local/rapidjson/document.h"

// 絕對路徑

#include "/home/user/cpp/local/rapidjson/document.h"

但是一旦標頭檔案位址有所變動,就需要改動**,非常麻煩。因此,我們需要修改配置檔案來實現顯示增加標頭檔案的搜尋路徑。

我們可以通過修改task.json來實現(shift+command+p,tasks: configure task),這裡以我自己的測試為例:

,

"problemmatcher": [

"$gcc"

],"isshellcommand": true,

}]}

這裡,就是通過增加"-i", "/users/ws/project/c/local",來顯示指定標頭檔案的搜尋路徑,其實該配置檔案就相當於自動執行了如下命令:

g++ -wall -std=c++11 -g main.cpp documenttest.cpp documenttest.h cpptest.cpp cpptest.h -i /users/ws/project/c/local
在使用g++命令編譯時,-i表示「add directory to include search path」,即指定搜尋路徑。這樣,再使用該task配置進行編譯的時候,就不會再出現「file not found」的問題了,搞定。

工具 vscode 編譯c

問題 經常需要把寫好的某一段c程式進行單元測試,感覺如果是燒進晶元裡驗證那很麻煩,所以用vscode先測試一遍可能會比較快和徹底一點。但是因為做的東西比較雜,經常忘記怎麼在vscode中測試。資料 記錄 1.print不認,認puts 2.記得新增main函式,之前一次測試不行,出現expected...

VScode配置,編譯,執行C C

第一步 預設安裝就行,可以更改一下安裝路徑 第二步 安裝必須的軟體和便於開發常用的外掛程式 第三步 什麼是 mingw w64 mingw 的全稱是 minimalist gnu on windows 它實際上是將經典的開源 c語言 編譯器 gcc 移植到了 windows 平台下,並且包含了 wi...

VS code 配置C 編譯環境

另外有如下幾處需要注意的地方 這部需要提前 run build task 來建立task.jason檔案,否則按了 f5 之後會報 could not find tast g 的錯誤 2 在安裝mingw所需的包時 gdb類的搜要安裝 3 vs code所需的配置檔案都在 vscode 資料夾中,一...