欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VScode中C++頭文件問題的終極解決方法詳析

 更新時間:2022年08月10日 15:04:11   作者:wbvalid  
最近使用VSCode編譯C/C++時發(fā)現了問題,下面這篇文章主要給大家介紹了關于VScode中C++頭文件問題的終極解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

引言

之前在配置VScode環(huán)境的時候,按照網上的文章配置,總是找不到頭文件,搜索解決方案,都是千篇一律,沒有說到重點。在此詳細解釋一下。

局部配置全局配置傻傻分不清楚

網上很多文章都在講一個配置文件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",
}

這樣的配置本身沒有錯,但是最關鍵的問題在于,如果之前已經用vscode打開過文件夾,并且在文件夾中自動生成了.vscode配置文件夾,那么大概率會自動生產一個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ā)現include頭文件出現問題,首先看一下.vscode目錄下的配置是否正確,然后再去看全局的配置。

這種情況的解決方案很簡單,因為全局的default配置已經寫好了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}"的效果,就是讓局部配置去調用全局配置中的默認選項,也就是全局settings.json中的那些配置。

一些有幫助的信息

  1. 不要直接在sourceforge下載mingw64,很大概率你下載到的是源碼包,需要在特定環(huán)境下之后才能用,在源碼包里是找不到g++.exe之類的東西的,不要浪費時間直接去找網盤下編譯好的build。
  2. 解壓build之后,通常放在C盤根目錄下,然后找到系統(tǒng)高級設置,配置環(huán)境變量。要注意,如果配置的是系統(tǒng)環(huán)境變量而非用戶環(huán)境變量時,需要注銷后生效,不需要重啟電腦。
  3. 具體includePath是什么,在配置好環(huán)境變量之后,也就是CMD中輸入gcc -v可以看到正常輸出之后,在CMD中輸入gcc -v -E -x c++ -命令,就可以列出所有的include路徑,加上雙引號之后就可以copy到對應的json配置中了。

總結

到此這篇關于VScode中C++頭文件問題終極解決方法的文章就介紹到這了,更多相關VScode C++頭文件問題解決內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Qt中TCP協(xié)議通信詳解

    Qt中TCP協(xié)議通信詳解

    這篇文章主要為大家詳細介紹了Qt中TCP協(xié)議通信,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C++中的異常處理機制詳解

    C++中的異常處理機制詳解

    本文給大家分享的是C++中的異常處理機制。對如何處理異常、基本異常語法、異常保護代碼等進行了探討,推薦給大家。
    2017-04-04
  • 關于C++使用指針 堆和棧的區(qū)別分析

    關于C++使用指針 堆和棧的區(qū)別分析

    本篇文章小編為大家介紹,關于C++使用指針 堆和棧的區(qū)別分析。需要的朋友參考下
    2013-04-04
  • 函數外初始化與函數內初始化詳細解析

    函數外初始化與函數內初始化詳細解析

    函數內初始化:bool FillStr(char *&szDst, int nSize);第一個參數中的&一定不能少,這是因為在函數外部我們只聲明了這個指針,具體這個指針指向內存中的哪個地址我們并不知道,所以&是為了說明傳遞的是這個指針的引用,那么在函數內初始化后這個指針的地址也就是外面指針的地址了
    2013-09-09
  • OpenCV提取圖像中圓線上的數據具體流程

    OpenCV提取圖像中圓線上的數據具體流程

    在對圖像進行處理時,經常會要提取出圖像中某條直線、圓線或者ROI區(qū)域內的感興趣數據,進行重點關注。本文主要介紹了利用OpenCV獲取圖像中圓線上的數據,需要的可以參考一下
    2021-11-11
  • 八皇后問題的相關C++代碼解答示例

    八皇后問題的相關C++代碼解答示例

    這篇文章主要介紹了八皇后問題的相關C++代碼解答示例,文中包括ACM競賽的八皇后相關知識的練習實例,需要的朋友可以參考下
    2015-08-08
  • 詳解如何在code block創(chuàng)建一個C語言的項目

    詳解如何在code block創(chuàng)建一個C語言的項目

    這篇文章主要介紹了詳解如何在code block創(chuàng)建一個C語言的項目,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • C語言入門篇--局部全局變量的作用域及生命周期

    C語言入門篇--局部全局變量的作用域及生命周期

    本篇文章是c語言基礎篇,本文對初識c語言的變量、局部全局變量的作用域及生命周期做了簡要的概述,希望可以幫助大家快速入門c語言的世界,更好的理解c語言
    2021-08-08
  • 深入理解C++的對象模型

    深入理解C++的對象模型

    本文在介紹C++使用的對象模型之前,先介紹了2種對象模型:簡單對象模型(a simple object model)和表格驅動對象模型(a table-driven object model),這樣介紹對后面的內容更有幫助,有需要的小伙伴們可以參考學習。
    2016-08-08
  • C語言中數據是如何存儲在內存中的

    C語言中數據是如何存儲在內存中的

    使用編程語言進行編程時,需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內存位置。這意味著,當您創(chuàng)建一個變量時,就會在內存中保留一些空間。您可能需要存儲各種數據類型的信息,操作系統(tǒng)會根據變量的數據類型,來分配內存和決定在保留內存中存儲什么
    2022-04-04

最新評論