VScode編譯C++ 頭文件顯示not found的問題
一直用codeblocks,想試試vscode,結(jié)果這個問題給我弄懵逼了。一開始以為是iostream這個頭文件not found,后來發(fā)現(xiàn)第一個頭文件都會這樣顯示,放到后面就不會了,然而,光這一個顯示not found(雖然并不影響編譯),就能逼死強迫癥的啊~~~
言歸正傳,這個問題解決方法是:
文件——首選項——設(shè)置——搜索“clang.diagnostic.enable",然后把勾勾去掉就好了。這是插件C/C++ Clang Command Adapter的一個選項~~

如果一堆英文看著難受的話,安裝插件Chinese (Simplified) Language Pack for Visual Studio Code就可以調(diào)成中文了。
如果還有波浪線,那就只好配置includePath了,最簡單的方式是讓vscode幫你完成:
首先在c_cpp_properties.json的"browse"的"path"里面添加頭文件在的目錄下,我直接用我的編譯器的安裝目錄了:

然后按照VScode給的教程里說的做~~~

知識點補充:
VS Code編譯file not found問題
最近在使用visual studio code的時候,編寫c++代碼,往往需要引入第三方的頭文件,如下所示:
#include "rapidjson/document.h" #include "rapidjson/writer.h" #include "rapidjson/stringbuffer.h" // 省略余下代碼
但是如果這些頭文件的路徑不在默認的搜索路徑中(/usr/include或者/usr/local/include),那么在編譯的時候,就會報錯,提示“file not found”,按照網(wǎng)上搜索的很多方法,都是通過修改c_cpp_properties.json,在includePath中加入相應(yīng)的路徑即可(shift+command+p,選擇C/C++: Edit Configurations即可打開)。但是實際測試發(fā)現(xiàn),即使在includePath中添加了路徑,也會報同樣的錯誤。個人懷疑這個地方的includePath,實際并沒有添加到task的path中。
經(jīng)過測試發(fā)現(xiàn),如果頭文件指定絕對路徑或者想對路徑是ok的,如下所示:
// 相對路徑 #include "../../local/rapidjson/document.h" // 絕對路徑 #include "/home/user/cpp/local/rapidjson/document.h"
但是一旦頭文件地址有所變動,就需要改動代碼,非常麻煩。因此,我們需要修改配置文件來實現(xiàn)顯示增加頭文件的搜索路徑。
我們可以通過修改task.json來實現(xiàn)(shift+command+p,Tasks: Configure Task),這里以我自己的測試為例:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "ws-test",
"type": "shell",
"command": "g++",
"args": [
"-Wall","-std=c++11", "-g",
"main.cpp",
"DocumentTest.cpp","DocumentTest.h",
"CppTest.cpp","CppTest.h",
"-I", "/Users/ws/project/c/local"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
],
"isShellCommand": true,
}
]
}
這里,就是通過增加"-I", "/Users/ws/project/c/local",來顯示指定頭文件的搜索路徑,其實該配置文件就相當(dāng)于自動執(zhí)行了如下命令:
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配置進行編譯的時候,就不會再出現(xiàn)“file not found”的問題了,搞定。
總結(jié)
到此這篇關(guān)于VScode編譯C++ 頭文件顯示not found的問題的文章就介紹到這了,更多相關(guān)vscode 頭文件 not found-內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于c++11的event-driven library的理解
這篇文章主要介紹了基于c++11的event-driven library的理解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
C語言數(shù)據(jù)結(jié)構(gòu)之線性表的鏈式存儲結(jié)構(gòu)
線性表是最基本、最簡單、也是最常用的一種數(shù)據(jù)結(jié)構(gòu)。線性表(linear list)是數(shù)據(jù)結(jié)構(gòu)的一種,一個線性表是n個具有相同特性的數(shù)據(jù)元素的有限序列,這篇文章帶你學(xué)習(xí)下線性表的鏈式存儲結(jié)構(gòu)2021-11-11

