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

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

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

知識點(diǎn)補(bǔ)充:
VS Code編譯file not found問題
最近在使用visual studio code的時(shí)候,編寫c++代碼,往往需要引入第三方的頭文件,如下所示:
#include "rapidjson/document.h" #include "rapidjson/writer.h" #include "rapidjson/stringbuffer.h" // 省略余下代碼
但是如果這些頭文件的路徑不在默認(rèn)的搜索路徑中(/usr/include或者/usr/local/include),那么在編譯的時(shí)候,就會報(bào)錯(cuò),提示“file not found”,按照網(wǎng)上搜索的很多方法,都是通過修改c_cpp_properties.json,在includePath中加入相應(yīng)的路徑即可(shift+command+p,選擇C/C++: Edit Configurations即可打開)。但是實(shí)際測試發(fā)現(xiàn),即使在includePath中添加了路徑,也會報(bào)同樣的錯(cuò)誤。個(gè)人懷疑這個(gè)地方的includePath,實(shí)際并沒有添加到task的path中。
經(jīng)過測試發(fā)現(xiàn),如果頭文件指定絕對路徑或者想對路徑是ok的,如下所示:
// 相對路徑 #include "../../local/rapidjson/document.h" // 絕對路徑 #include "/home/user/cpp/local/rapidjson/document.h"
但是一旦頭文件地址有所變動,就需要改動代碼,非常麻煩。因此,我們需要修改配置文件來實(shí)現(xiàn)顯示增加頭文件的搜索路徑。
我們可以通過修改task.json來實(shí)現(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",來顯示指定頭文件的搜索路徑,其實(shí)該配置文件就相當(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++命令編譯時(shí),-I表示“Add directory to include search path”,即指定搜索路徑。這樣,再使用該task配置進(jìn)行編譯的時(shí)候,就不會再出現(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的理解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
C++中基類和派生類之間的轉(zhuǎn)換實(shí)例教程
這篇文章主要介紹了C++中基類和派生類之間的轉(zhuǎn)換,有助于深入理解C++面向?qū)ο蟪绦蛟O(shè)計(jì),需要的朋友可以參考下2014-08-08
C++中內(nèi)存池的簡單原理及實(shí)現(xiàn)詳解
內(nèi)存池的思想是,在真正使用內(nèi)存之前,預(yù)先申請分配一定數(shù)量、大小預(yù)設(shè)的內(nèi)存塊留作備用。本文主要來和大家聊聊內(nèi)存池的簡單原理及實(shí)現(xiàn),希望對大家有所幫助2023-03-03
C++標(biāo)準(zhǔn)庫介紹及使用string類的詳細(xì)過程
C++中將string封裝為單獨(dú)的類,string?類是?C++?標(biāo)準(zhǔn)庫中的一個(gè)非常重要的類,用于表示和操作字符串,這篇文章主要介紹了C++標(biāo)準(zhǔn)庫介紹及使用string類,需要的朋友可以參考下2024-08-08
C語言數(shù)據(jù)結(jié)構(gòu)之線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)
線性表是最基本、最簡單、也是最常用的一種數(shù)據(jù)結(jié)構(gòu)。線性表(linear list)是數(shù)據(jù)結(jié)構(gòu)的一種,一個(gè)線性表是n個(gè)具有相同特性的數(shù)據(jù)元素的有限序列,這篇文章帶你學(xué)習(xí)下線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)2021-11-11

