VScode中C++頭文件問題的終極解決方法詳析
引言
之前在配置VScode環(huán)境的時候,按照網(wǎng)上的文章配置,總是找不到頭文件,搜索解決方案,都是千篇一律,沒有說到重點。在此詳細解釋一下。
局部配置全局配置傻傻分不清楚
網(wǎng)上很多文章都在講一個配置文件c_cpp_properties.json,但是有些人不知道什么原因是找不到這個配置文件的。在擴展面板中,點擊C++的設置進入的頁面其實是通用設置頁面,大概長這樣:

這里只能看到"在settings.json中編輯"的選項,無論怎么寫,都不可能生效,因為真正的配置文件在c_cpp_properties.json中。settings.json文件中的都是全局的一些默認配置。比如說,我配置完之后是這樣的:
//全局的settings.json
{
"C_Cpp.default.compilerPath": "C:/MinGW/bin/g++.exe",
"C_Cpp.default.includePath": [
"${workspaceFolder}/**",
"C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
"C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
"C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
"C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",
"C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
"C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"
],
"C_Cpp.default.intelliSenseMode": "linux-gcc-x64",
}
這樣的配置本身沒有錯,但是最關鍵的問題在于,如果之前已經(jīng)用vscode打開過文件夾,并且在文件夾中自動生成了.vscode配置文件夾,那么大概率會自動生產(chǎn)一個c_cpp_properties.json配置文件,并且是不帶默認配置的,大概是這樣:
//.vscode文件夾局部的配置c_cpp_properties.json
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**" //問題就出在這一行
],
"defines": [],
"compilerPath": "C:/MinGW/bin/g++.exe",
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
如果.vscode局部的配置文件沒有顯示的聲明c_cpp插件的includePath那么相當于只有這一行"${workspaceFolder}"的配置生效,也就是只在當前工作目錄下查找頭文件,那能找到才怪咧。
因此,要特別注意,如果發(fā)現(xiàn)include頭文件出現(xiàn)問題,首先看一下.vscode目錄下的配置是否正確,然后再去看全局的配置。
這種情況的解決方案很簡單,因為全局的default配置已經(jīng)寫好了include的路徑,只需要在局部的配置這兒增加一行"${default}"即可:
//.vscode文件夾局部的配置c_cpp_properties.json
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"${default}" //只需要加這一行,就是這么簡單
],
"defines": [],
"compilerPath": "C:/MinGW/bin/g++.exe",
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
加"${default}"的效果,就是讓局部配置去調(diào)用全局配置中的默認選項,也就是全局settings.json中的那些配置。
一些有幫助的信息
- 不要直接在sourceforge下載mingw64,很大概率你下載到的是源碼包,需要在特定環(huán)境下之后才能用,在源碼包里是找不到g++.exe之類的東西的,不要浪費時間直接去找網(wǎng)盤下編譯好的build。
- 解壓build之后,通常放在C盤根目錄下,然后找到系統(tǒng)高級設置,配置環(huán)境變量。要注意,如果配置的是系統(tǒng)環(huán)境變量而非用戶環(huán)境變量時,需要注銷后生效,不需要重啟電腦。
- 具體includePath是什么,在配置好環(huán)境變量之后,也就是CMD中輸入gcc -v可以看到正常輸出之后,在CMD中輸入gcc -v -E -x c++ -命令,就可以列出所有的include路徑,加上雙引號之后就可以copy到對應的json配置中了。
總結(jié)
到此這篇關于VScode中C++頭文件問題終極解決方法的文章就介紹到這了,更多相關VScode C++頭文件問題解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C語言文件操作中 fgets與fputs 函數(shù)詳解
這篇文章主要介紹了C語言文件操作中 fgets與fputs 函數(shù)詳解的相關資料,需要的朋友可以參考下2017-06-06

