本文將為大家詳細(xì)介紹“vscode配置C、C++環(huán)境的方法”,內(nèi)容步驟清晰詳細(xì),細(xì)節(jié)處理妥當(dāng),而小編每天都會(huì)更新不同的知識(shí)點(diǎn),希望這篇“vscode配置C、C++環(huán)境的方法”能夠給你意想不到的收獲,請(qǐng)大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識(shí)吧。
創(chuàng)新互聯(lián)成立于2013年,先為肇源等服務(wù)建站,肇源等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為肇源企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
Visual Studio Code 是一個(gè)運(yùn)行于 OS X,Windows和 Linux 之上的,針對(duì)于編寫(xiě)現(xiàn)代 web 和云應(yīng)用的跨平臺(tái)編輯器,它為開(kāi)發(fā)者們提供了對(duì)多種編程語(yǔ)言的內(nèi)置支持,并且正如 Microsoft 在Build 大會(huì)的 keynote 中所指出的,這款編輯器也會(huì)為這些語(yǔ)言都提供了豐富的代碼補(bǔ)全和導(dǎo)航功能。
總體流程:
1、下載安裝vscode
https://code.visualstudio.com/Download
2、安裝cpptools插件
打開(kāi)vscode,按ctrl+p打開(kāi)快速命令框,輸入以下命令后等待
ext install cpptools
vscode在短暫的聯(lián)網(wǎng)查找后會(huì)列出插件列表,如圖:
點(diǎn)擊箭頭所指處的按鈕安裝插件,安裝過(guò)程可能會(huì)有些慢耐心等待
安裝完成后vscode會(huì)提示你重啟vscode,此時(shí)重啟即可
更新:因?yàn)槲已b這個(gè)插件已經(jīng)是幾年之前了,不確定現(xiàn)在界面還是不是這樣,但是意思不變,裝完后點(diǎn)重新加載就行了
3、安裝編譯、調(diào)試環(huán)境
(若是電腦上原來(lái)裝著codeblocks,Dev C++等可以跳過(guò)這步,【建議安裝codeblocks使用其自帶的編譯器】
直接跳到 【4、配置系統(tǒng)環(huán)境變量path】 這步即可)
目前windows下調(diào)試僅支持 Cygwin 和 MinGW。
這里使用的是MinGW.
下面是MinGW的安裝配置過(guò)程:
http://mingw.org/
進(jìn)入官網(wǎng)點(diǎn)擊右側(cè) Download Installer下載安裝器
打開(kāi)安裝器點(diǎn)擊install準(zhǔn)備安裝:
選擇一個(gè)安裝目錄,默認(rèn)為C:\MinGW這里選擇的是A:\MinGW
點(diǎn)擊Continue開(kāi)始安裝,安裝過(guò)程需聯(lián)網(wǎng),若安裝時(shí)提示error則需翻墻安裝
安裝過(guò)程很快,結(jié)束后Continue按鈕恢復(fù)為可用狀態(tài),點(diǎn)擊完成安裝。
打開(kāi)MinGW安裝管理器進(jìn)行進(jìn)一步配置
注意這里gdb必選,否則無(wú)法調(diào)試
選中幾個(gè)需要的項(xiàng)右鍵Make for Installation進(jìn)行標(biāo)記,其中g(shù)cc和g++為c和c++編譯器
選擇完全部想要安裝的項(xiàng)后點(diǎn)擊左上角Installation菜單下的Apply Changes應(yīng)用修改,過(guò)程需聯(lián)網(wǎng),中間出現(xiàn)error可先繼續(xù),若最后失敗則需翻墻更新,建議翻墻。
更新:?jiǎn)为?dú)裝MinGW ,我最早是這么搞的,要是發(fā)現(xiàn)不可以(無(wú)法下載或者很懷疑自己MinGW沒(méi)安裝好等),可以試試codeblocks或者Dev-cpp等等,這些IDE自帶編譯器,還是看這篇文章 里面有使用codeblocks自帶的MinGW的細(xì)節(jié),當(dāng)然要是可以就繼續(xù)。
4、配置系統(tǒng)環(huán)境變量path
然后配置系統(tǒng)環(huán)境變量path,這一步為必須
在 我的電腦 上右鍵 屬性:
然后按照下面步驟做即可,注意最后新建的項(xiàng)要與之前MinGW安裝位置相對(duì)應(yīng)
Windows7注意,要加入,不是覆蓋!我第一次不小心把原來(lái)路徑覆蓋了。。。(因?yàn)閣in7不像win10那么明顯是加入。。)
重啟電腦(非常建議),避免出現(xiàn)奇奇怪怪的問(wèn)題
再次打開(kāi)vscode,注意配置系統(tǒng)環(huán)境變量path后重啟一下vscode
注意:vscode調(diào)試需要在打開(kāi)的文件夾中進(jìn)行(注意!是用VSCode打開(kāi)文件夾!!單獨(dú)打開(kāi)一個(gè)單獨(dú)的cpp是沒(méi)有下面的幾個(gè)配置文件出現(xiàn)的?。∫簿褪钦f(shuō),這個(gè)cpp要在一個(gè)文件夾里!不像DevCpp和C-Free可以直接調(diào)試一個(gè)單獨(dú)的cpp?。。?/p>
5、修改vscode調(diào)試配置文件
打開(kāi)文件夾后,新建test.cpp(隨便建,或者main.cpp)進(jìn)行輸入代碼測(cè)試:
#include <iostream> using namespace std; int main() { cout << "hello" << endl; return 0; }
新修改了截圖(配色是:Dracula)
如圖示進(jìn)入調(diào)試界面選擇C++: 【該圖已更新,老版本圖已刪除,反正debug就是按那個(gè)蟲(chóng)子的圖標(biāo)】
更新:現(xiàn)在點(diǎn)擊之后變成了這樣的:VScode還會(huì)讓你再選一個(gè),都選第一個(gè)吧
然后會(huì)在工作目錄下的生成一個(gè)launch.json的啟動(dòng)配置文件:
使用下面代碼替換該文件:(只是在vsc自己產(chǎn)生的json文件加了一些行)
launch.json中有很多屬性可以設(shè)置, 通過(guò)智能提示查看有那些屬性可以設(shè)置, 如果要查看屬性的具體含義, 可以把鼠標(biāo)懸停在屬性上面, 會(huì)屬性的使用說(shuō)明.
{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", // 配置名稱(chēng),將會(huì)在啟動(dòng)配置的下拉菜單中顯示 "type": "cppdbg", // 配置類(lèi)型,這里只能為cppdbg "request": "launch", // 請(qǐng)求配置類(lèi)型,可以為launch(啟動(dòng))或attach(附加) "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",// 將要進(jìn)行調(diào)試的程序的路徑 "args": [], // 程序調(diào)試時(shí)傳遞給程序的命令行參數(shù),一般設(shè)為空即可 "stopAtEntry": false, // 設(shè)為true時(shí)程序?qū)和T诔绦蛉肟谔?,一般設(shè)置為false "cwd": "${workspaceFolder}", // 調(diào)試程序時(shí)的工作目錄,一般為${workspaceFolder}即代碼所在目錄 "environment": [], "externalConsole": true, // 調(diào)試時(shí)是否顯示控制臺(tái)窗口,一般設(shè)置為true顯示控制臺(tái) "MIMode": "gdb", "miDebuggerPath": "C:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin\\gdb32.exe", // miDebugger的路徑,注意這里要與MinGw的路徑對(duì)應(yīng) "preLaunchTask": "g++", // 調(diào)試會(huì)話(huà)開(kāi)始前執(zhí)行的任務(wù),一般為編譯程序,c++為g++, c為gcc "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
更新:注意:如評(píng)論區(qū)所說(shuō),workspaceRoot已被棄用,現(xiàn)改為workspaceFolder,上面的代碼我已經(jīng)改好了
更新:vscode默認(rèn)的"externalConsole": false,,而我這里改為了true,改為true即在控制臺(tái)內(nèi)部運(yùn)行,不顯示黑框,但是要是不顯示黑框似乎沒(méi)法輸入(cin或者scanf)了(沒(méi)怎么試過(guò),讀者可以試試)
注意miDebuggerPath要與MinGw的路徑對(duì)應(yīng) ,我用的codeblocks的gdb,見(jiàn)上面的json文件。
注意miDebuggerPath是\\,與直接粘貼過(guò)來(lái)的路徑不一樣,需要加一個(gè)”\”(冒號(hào)后面的兩個(gè)反斜杠“\\”),或者使用一個(gè)“/”
替換后保存,然后切換至test.cpp,按F5進(jìn)行調(diào)試,此時(shí)會(huì)彈出一個(gè)信息框要求你配置任務(wù)運(yùn)行程序,點(diǎn)擊它~
替換后保存,按F5進(jìn)行調(diào)試,此時(shí)會(huì)彈出:
【注意】,上面的那個(gè)目前的cpp插件似乎沒(méi)有了,若是直接按F5會(huì)出現(xiàn)下面這個(gè)圖,不清楚評(píng)論區(qū)童鞋說(shuō)的是不是這個(gè)?
【舊版本圖已刪除】請(qǐng)點(diǎn)擊第二個(gè)“配置任務(wù)”,然后出現(xiàn)這個(gè):點(diǎn)就行了~【舊版本圖已刪除】之后出現(xiàn):【舊版本圖已刪除】在這里隨便選一個(gè):(我選的others)【隨便選,反正最后tasks.json文件要被覆蓋】【下面的圖是更新之前的圖】【舊版本圖已刪除】
點(diǎn)擊第一個(gè)”配置任務(wù)“,然后會(huì)出現(xiàn):我選的第三個(gè),g++那個(gè)
更新:現(xiàn)在變成這樣的了:我選的第三個(gè),g++那個(gè)
然后用下面代碼替換:【更新:原來(lái)的"version": "0.2.0"似乎會(huì)有下劃線(xiàn)報(bào)錯(cuò),那就按照vscode說(shuō)的改為2.0.0好了,下面的是最新的復(fù)制即可?!?/p>
【提供兩個(gè)版本,目前似乎都可以,推薦使用第二個(gè)版本】
第一個(gè)版本的tasks.json
{ "version": "2.0.0", "command": "g++", "args": ["-g","${file}","-o","${fileBasenameNoExtension}.exe"], // 編譯命令參數(shù) "problemMatcher": { "owner": "cpp", "fileLocation": ["relative", "${workspaceFolder}"], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } }
第二個(gè)版本的tasks.json
更新:我發(fā)現(xiàn)使用vscode自己生成的`tasks.json`,似乎也可以成成功運(yùn)行,我把VSCode自己生成的這個(gè)json文件也貼上來(lái)(稍加改動(dòng)):這個(gè)json文件和上面那個(gè)都是可以使cpp正常運(yùn)行的
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "type": "shell", "label": "g++", //這里注意一下,見(jiàn)下文 "command": "C:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin\\g++.exe", "args": [ "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "C:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin" }, "problemMatcher": [ "$gcc" ] } ] }
注意:“l(fā)abel”那一行,要和前面的`launch.json`中的"preLaunchTask": "g++"這里寫(xiě)的一樣,因?yàn)榍懊鎌launch.json`中的"preLaunchTask"里我改為了g++,所以這里我也改為g++,vscode默認(rèn)的是`g++.exe build active file`【`launch.json`("preLaunchTask": "g++.exe build active file")和`tasks.json`("label": "g++.exe build active file"),都是默認(rèn)的這個(gè),當(dāng)然無(wú)論是什么,只要保持一致就行】
上面那一段話(huà)的圖示說(shuō)明:
保存一下,然后切換至test.cpp,再次按F5啟動(dòng)調(diào)試~
然后會(huì)發(fā)現(xiàn)有一個(gè)黑框一閃而過(guò),然后終端顯示“終端將被任務(wù)重用,按任意鍵關(guān)閉”,說(shuō)明大家的配置沒(méi)問(wèn)題啊評(píng)論區(qū)有這個(gè)問(wèn)題的童鞋們!只是vscode不是自己在程序末尾停止而已啦,和IDE不一樣。
可以在最后加一個(gè)斷點(diǎn),或者getchar(),或者system("pause");
或者int pause;cin>>pause
; 看個(gè)人喜好了,個(gè)人感覺(jué)最后在return 0;處打一個(gè)斷點(diǎn)比較好。然后程序就會(huì)在最后停住了。
下面這個(gè)是最后用getchar()的舊圖,沒(méi)刪供參考
【更新:似乎下面的步驟配置c_cpp_properties.json不需要了,因?yàn)槲野凑丈厦娴牟襟E來(lái)似乎沒(méi)有在頭文件有下劃線(xiàn)和原來(lái)有的燈泡圖標(biāo)什么的,所以下面的開(kāi)始到 “6、其他” 之前可以不用看(后面還有內(nèi)容?。竭@里基本配置完成】
配置c_cpp_properties.json
保存一下,然后切換至a.cpp,再次按F5啟動(dòng)調(diào)試。
如果前面的配置都對(duì)的話(huà),這個(gè)時(shí)候會(huì)進(jìn)行編譯,然后跳出黑框輸出Hello World,之后窗口又迅速消失。
可能大多數(shù)人已經(jīng)習(xí)慣了VS/VC的便利,其實(shí)我們這只要在末尾加上一個(gè)cin輸入即可。加上int pause;cin>>pause;后再按F5。
但是這個(gè)貌似不夠高大上,其實(shí)我們一般是使用system('pause');實(shí)現(xiàn),換上后再次運(yùn)行,這時(shí)候報(bào)錯(cuò)了。因?yàn)槲覀兾覀円玫膸?kù)有問(wèn)題,沒(méi)有正確引用進(jìn)來(lái),注意這里不是VS/VC,需要我們自己配置路徑。
注意:之前在下載安裝GNU哪里已經(jīng)配置了相應(yīng)的環(huán)境變量,但是VScode中有個(gè)配置文件,他是根據(jù)自己的配置文件來(lái)找的。
在編輯器中,有小波浪的就是代碼有問(wèn)題,看下#include<iostream>,左邊有個(gè)燈泡,點(diǎn)擊后跳出配置文件,修改其中的Win32的"includePath"如下,和上文一樣,根據(jù)自己的路徑進(jìn)行調(diào)整即可。經(jīng)測(cè)試,下圖中代碼的注冊(cè)部分仍是必要部分
{ "name": "Win32", "includePath": [ "C:/Program Files/MinGW/include/*", "C:/Program Files/MinGW/lib/gcc/mingw32/5.3.0/include/*" "C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/*", "C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/mingw32/*", "C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/backward/*" ], "browse": { "limitSymbolsToIncludedHeaders": true, "databaseFilename": "" } }
6、其他
一勞永逸:因?yàn)閂S需要為每一個(gè)文件夾做單獨(dú)配置,所以建議把.vscode
文件夾放到你常用的文件夾的頂層,這樣就不用重復(fù)配置了。
不用每個(gè)新cpp文件就要一套配置。這些配置在你配置好的文件夾內(nèi)的所有子文件夾和文件都能使用。
最后效果:
設(shè)置斷點(diǎn),變量監(jiān)視,調(diào)用堆棧的查看:
條件斷點(diǎn)的使用:
新更新:【紅色的是很早很早前更新的,2018.12.29更新,會(huì)用綠色的字體表示】
最后補(bǔ)一句:
vscode似乎還僅僅支持英文文件名的調(diào)試,中文調(diào)試的話(huà)就會(huì)出現(xiàn)“找不到文件XXXXX.cpp”(大意,原文記不清了,因?yàn)榫嚯x這個(gè)問(wèn)題我已經(jīng)解決很長(zhǎng)時(shí)間了,今天看到想補(bǔ)一下,別讓新人踩坑了。。。),然后問(wèn)是否要?jiǎng)?chuàng)建,不知道是BUG還是啥,這糾結(jié)了我N久,因?yàn)槲矣行ヽpp文件是中文命名的,我去Github上找相應(yīng)的issue也沒(méi)有找到我想要的這個(gè)問(wèn)題解答,最后偶然間發(fā)現(xiàn)英文命名的文件調(diào)試時(shí)不會(huì)出現(xiàn)這個(gè)問(wèn)題,才解決了?。≌娴暮芸樱。?!新人注意?。?!這里浪費(fèi)了我很長(zhǎng)很長(zhǎng)時(shí)間!!
【要是根據(jù)上述方法還沒(méi)有配置成功,請(qǐng)看評(píng)論區(qū)是否有人提出了類(lèi)似問(wèn)題,還可以按照我在這篇文章之后一段時(shí)間寫(xiě)的一篇:這篇文章,那篇文章使用了codeblocks自帶的MINGW,而且配置方法比這個(gè)簡(jiǎn)單一些(因?yàn)檫@個(gè)是最早寫(xiě)的),要是始終有問(wèn)題,歡迎留言,我會(huì)抽時(shí)間盡我所能解答(非大神有好多解答不了。。。) 】
Linux版本配置(簡(jiǎn)要)
也是很早之前配置過(guò)Linux的,今天我偶然發(fā)現(xiàn)了有以前用Linux配置的文件,感覺(jué)步驟都和windows配置不多(似乎沒(méi)有miDebuggerPath這一項(xiàng)),直接上文件了:
【注意:不確定這個(gè)還能不能用,因?yàn)槭呛茉缰暗牧?,僅僅做參考】
launch.json:
{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", // 配置名稱(chēng),將會(huì)在啟動(dòng)配置的下拉菜單中顯示 "type": "cppdbg", // 配置類(lèi)型,這里只能為cppdbg "request": "launch", // 請(qǐng)求配置類(lèi)型,可以為launch(啟動(dòng))或attach(附加) "program": "${workspaceRoot}/${fileBasenameNoExtension}.o",// 將要進(jìn)行調(diào)試的程序的路徑 "args": [], // 程序調(diào)試時(shí)傳遞給程序的命令行參數(shù),一般設(shè)為空即可 "stopAtEntry": false, // 設(shè)為true時(shí)程序?qū)和T诔绦蛉肟谔?,一般設(shè)置為false "cwd": "${workspaceRoot}",// 調(diào)試程序時(shí)的工作目錄,一般為${workspaceRoot}即代碼所在目錄 "environment": [], "externalConsole": true,// 調(diào)試時(shí)是否顯示控制臺(tái)窗口,一般設(shè)置為true顯示控制臺(tái) "MIMode": "gdb", "preLaunchTask": "g++", // 調(diào)試會(huì)話(huà)開(kāi)始前執(zhí)行的任務(wù),一般為編譯程序,c++為g++, c為gcc "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
tasks.json:
{ "version": "0.1.0", "command": "g++", "args": ["-g","${file}","-o","${fileBasenameNoExtension}.o"], // 編譯命令參數(shù) "problemMatcher": { "owner": "cpp", "fileLocation": ["relative", "${workspaceRoot}"], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } }
如果你能讀到這里,小編希望你對(duì)“vscode配置C、C++環(huán)境的方法”這一關(guān)鍵問(wèn)題有了從實(shí)踐層面最深刻的體會(huì),具體使用情況還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享名稱(chēng):vscode配置C、C++環(huán)境的方法
文章URL:http://jinyejixie.com/article12/psiedc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、響應(yīng)式網(wǎng)站、微信小程序、ChatGPT、小程序開(kāi)發(fā)、全網(wǎng)營(yíng)銷(xiāo)推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)