VS Code C/C++環(huán)境配置教程(無法打開源文件“xxxxxx.h”或者檢測到 #include 錯誤,請更新includePath)(POSIX API)
一、問題描述與分析
編輯C/C++程序,我推薦使用C/C++,VS Code相對于別的編譯器來說有很多的優(yōu)勢。但是如果第一次使用的話,會覺得其不好用。因為如果不配置好的話,操作會比較麻煩。
注意:我這里是在windows下編寫Linux程序。
例如在使用VS Code編輯C/C++程序在沒有配置好的情況下,會出現(xiàn)如下圖情況,
出現(xiàn)這種情況的原因是 在VS Code沒有找到頭文件?;蛘呤荲S Code沒有配置好。
為了很好的解釋上述的問題,請先了解下Cygwin、MinGW、POSIX等,并了解下Cygwin和MinGW之間的區(qū)別。
MinGw與Cygwin的區(qū)別中提到如下圖,
如果在系統(tǒng)中安裝好MinGW,并將VS Code配置好,則報錯中將不會出現(xiàn) “無法打開源文件 “stdio.h””,這是因為安裝好的MinGW中是含有該頭文件的。但是對于某些POSIX API,MinGW中是沒有的。因此,為了滿足我的開發(fā)需求,我選擇使用Cygwin,
注意:若你與我的開發(fā)需求不一樣,接下來的Cygwin對你就是沒有必要的。但后面的VS Code 配置是相應(yīng)差不多的。
二、Cygwin下載與安裝
該處可參考博客 https://blog.csdn.net/u010356768/article/details/90756742
1、下載Cygwim
Cygwin下載官網(wǎng):http://www.cygwin.com/
2、下載完成后,運行安裝 流程截圖
點擊 ALL ,會出現(xiàn)很多包,我們主要是為了做C/C++的開發(fā),因此,只需要選擇 “Devel”中的binutils、 gcc 、mingw 、gdb、make
點擊 下一步
等待下載安裝完成
執(zhí)行 下列命令查看安裝狀態(tài)。
cygcheck -c cygwin
gcc --version
g++ --version
三、配置VS Code
打開VS Code ,文件 => 首選項 => 設(shè)置 => 擴展 => C/C++ => include Path(點擊在.json中編輯)
上圖中,中括號中填寫的就是 已經(jīng)安裝好的 Cygwin中頭文件的路徑。
如何獲得路徑?
在cygwin中執(zhí)行 " gcc -v -x c -E - "
獲得的路徑是相對于cygwin根目錄,因此,需要轉(zhuǎn)成windows下的路徑。
如何轉(zhuǎn)?
找到 cygwin的安裝目錄,該目錄下會有usr文件,該處usr就是上圖中的usr。
/usr/include 等于 C:\cygwin64\usr\include,將其路徑加入到 VS Code中,
注意:該處的要點就是,讓windows下的VS Code能夠找到頭文件,然后這些頭文件都在cygwin的安裝目錄下。(若添加后,還是沒有找到頭文件,可在cygwin安裝目錄下直接搜索頭文件,然后將其路徑添加進來)
添加后效果如下,
添加成功后,可通過右鍵到定義查看頭文件定義
總結(jié)
到此這篇關(guān)于VS Code C/C++環(huán)境配置教程(無法打開源文件“xxxxxx.h” 或者 檢測到 #include 錯誤。請更新includePath) (POSIX API)的文章就介紹到這了,更多相關(guān)VS Code C/C++環(huán)境配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言實現(xiàn)通訊錄系統(tǒng)課程設(shè)計
這篇文章主要為大家詳細介紹了C語言實現(xiàn)通訊錄系統(tǒng)課程設(shè)計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07c++函數(shù)指針和回調(diào)函數(shù)示例
這篇文章主要介紹了c++函數(shù)指針和回調(diào)函數(shù)示例,需要的朋友可以參考下2014-05-05GCC 編譯使用動態(tài)鏈接庫和靜態(tài)鏈接庫的方法
根據(jù)鏈接時期的不同,庫又有靜態(tài)庫和動態(tài)庫之分,有別于靜態(tài)庫,動態(tài)庫的鏈接是在程序執(zhí)行的時候被鏈接的2013-03-03解決c++?error:crosses?initialization?of?問題
最近在寫代碼的時候,碰到了?crosses?initialization?of?...?的問題,只因我在?switch?的某個?case?分支下定義了一個變量,于是乎便將這個問題整理一下,需要的朋友可以參考下2023-03-03淺談C語言中的sizeof()和strlen()的區(qū)別
本文主要介紹了C語言中的sizeof()和strlen()的區(qū)別,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05