VScode編譯C++ 頭文件顯示not found的問題
一直用codeblocks,想試試vscode,結(jié)果這個問題給我弄懵逼了。一開始以為是iostream這個頭文件not found,后來發(fā)現(xiàn)第一個頭文件都會這樣顯示,放到后面就不會了,然而,光這一個顯示not found(雖然并不影響編譯),就能逼死強迫癥的啊~~~
言歸正傳,這個問題解決方法是:
文件——首選項——設置——搜索“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中加入相應的路徑即可(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",來顯示指定頭文件的搜索路徑,其實該配置文件就相當于自動執(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é)
到此這篇關于VScode編譯C++ 頭文件顯示not found的問題的文章就介紹到這了,更多相關vscode 頭文件 not found-內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!