Visual Studio Code配置C、C++環(huán)境并編寫運(yùn)行的方法
弄了半天,總算弄好了,結(jié)合網(wǎng)上的教程,整理分享一下~
總體流程:
- 下載安裝vscode
- 安裝cpptools插件
- 安裝編譯、調(diào)試環(huán)境
- 修改vscode調(diào)試配置文件
下載安裝vscode
https://code.visualstudio.com/Download
Visual Studio Code 64位 v1.26.0 官方最新安裝版:https://www.jb51.net/softs/606746.html
Visual Studio Code 32位 v1.26.0 官方最新安裝版: https://www.jb51.net/softs/606747.html
Visual Studio Code(代碼編輯器) v1.20.1 64位 中文免費(fèi)綠色版 https://www.jb51.net/softs/586169.html
安裝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í)重啟即可
安裝編譯、調(diào)試環(huán)境
(若是電腦上原來(lái)裝著codeblocks,Dev C++等可以跳過(guò)這步,
直接跳到 【配置系統(tǒng)環(huán)境變量path】 這步即可)
目前windows下調(diào)試僅支持 Cygwin 和 MinGW。
這里使用的是MinGW.
下面是MinGW的安裝配置過(guò)程:
http://mingw.org/
mingw(GNU工具集導(dǎo)入庫(kù)集合) 5.1.6 官方版 https://www.jb51.net/softs/192011.html
MinGW安裝圖文教程以及如何配置C語(yǔ)音編程環(huán)境 https://www.jb51.net/softjc/192017.html
進(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ù),若最后失敗則需翻墻更新,建議翻墻。
【配置系統(tǒng)環(huán)境變量path】
然后配置系統(tǒng)環(huán)境變量path,這一步為必須
在 我的電腦 上右鍵 屬性:
然后按照下面步驟做即可,注意最后新建的項(xiàng)要與之前MinGW安裝位置相對(duì)應(yīng)
Windows7注意,要加入,不是覆蓋!我第一次不小心把原來(lái)路徑覆蓋了。。。(因?yàn)閣in7不像win10那么明顯是加入。。)
再次打開(kāi)vscode,注意配置系統(tǒng)環(huán)境變量path后重啟一下vscode
注意vscode調(diào)試需要在打開(kāi)的文件夾中進(jìn)行(注意!是用VSC打開(kāi)文件夾??!,單獨(dú)打開(kāi)一個(gè)單獨(dú)的cpp是沒(méi)有下面的幾個(gè)配置文件出現(xiàn)的??!也就是說(shuō),這個(gè)cpp要在一個(gè)文件夾里!不像DevCpp和C-Free可以直接調(diào)試一個(gè)單獨(dú)的cpp!?。?/p>
打開(kāi)文件夾后,新建test.cpp進(jìn)行輸入代碼測(cè)試:
如圖示進(jìn)入調(diào)試界面選擇C++:
然后會(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", // 配置名稱,將會(huì)在啟動(dòng)配置的下拉菜單中顯示 "type": "cppdbg", // 配置類型,這里只能為cppdbg "request": "launch", // 請(qǐng)求配置類型,可以為launch(啟動(dòng))或attach(附加) "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 將要進(jìn)行調(diào)試的程序的路徑 "args": [], // 程序調(diào)試時(shí)傳遞給程序的命令行參數(shù),一般設(shè)為空即可 "stopAtEntry": false, // 設(shè)為true時(shí)程序?qū)和T诔绦蛉肟谔帲话阍O(shè)置為false "cwd": "${workspaceRoot}", // 調(diào)試程序時(shí)的工作目錄,一般為${workspaceRoot}即代碼所在目錄 "environment": [], "externalConsole": true, // 調(diào)試時(shí)是否顯示控制臺(tái)窗口,一般設(shè)置為true顯示控制臺(tái) "MIMode": "gdb", "miDebuggerPath": "C:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin\\gdb.exe", // miDebugger的路徑,注意這里要與MinGw的路徑對(duì)應(yīng) "preLaunchTask": "g++", // 調(diào)試會(huì)話開(kāi)始前執(zhí)行的任務(wù),一般為編譯程序,c++為g++, c為gcc "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
注意miDebuggerPath要與MinGw的路徑對(duì)應(yīng) ,我用的codeblocks的gdb,見(jiàn)上面的json文件。
而且,注意miDebuggerPath是\\,與直接粘貼過(guò)來(lái)的路徑不一樣,需要加一個(gè)”\”(冒號(hào)后面的兩個(gè)反斜杠“\\”)
替換后保存,然后切換至test.cpp,按F5進(jìn)行調(diào)試,此時(shí)會(huì)彈出一個(gè)信息框要求你配置任務(wù)運(yùn)行程序,點(diǎn)擊它~
在這里隨便選一個(gè):(我選的others)
然后用下面代碼替換:
{ "version": "0.1.0", "command": "g++", "args": ["-g","${file}","-o","${fileBasenameNoExtension}.exe"], // 編譯命令參數(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 } } }
保存一下,然后切換至test.cpp,再次按F5啟動(dòng)調(diào)試~
配置c_cpp_properties.json
- 保存一下,然后切換至a.cpp,再次按F5啟動(dòng)調(diào)試。
- 如果前面的配置都對(duì)的話,這個(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": "" } }
一勞永逸:因?yàn)閂S需要為每一個(gè)文件夾做單獨(dú)配置,所以建議把.vscode
文件夾放到你常用的文件夾的頂層,這樣就不用重復(fù)配置了。
不用每個(gè)新cpp文件就要一套配置。這些配置在你配置好的文件夾內(nèi)的所有子文件夾和文件都能使用。
最后效果:
設(shè)置斷點(diǎn),變量監(jiān)視,調(diào)用堆棧的查看:
條件斷點(diǎn)的使用:
新更新:
最后補(bǔ)一句:
vscode似乎還僅僅支持英文文件名的調(diào)試,中文調(diào)試的話就會(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ī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
上一篇:詳解C++ 動(dòng)態(tài)內(nèi)存分配與命名空間
欄 目:C語(yǔ)言
下一篇:c/c++拷貝構(gòu)造函數(shù)和關(guān)鍵字explicit詳解
本文標(biāo)題:Visual Studio Code配置C、C++環(huán)境并編寫運(yùn)行的方法
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/700.html
您可能感興趣的文章
- 01-10淺析c++ 宏 #val 在unicode下的使用
- 01-10VC中實(shí)現(xiàn)GB2312、BIG5、Unicode編碼轉(zhuǎn)換的方法
- 01-10在Visual Studio中用C++語(yǔ)言創(chuàng)建DLL動(dòng)態(tài)鏈接庫(kù)圖文教程
- 01-10Visual C++中Tab View的多種實(shí)現(xiàn)方法
- 01-10Visual C++程序設(shè)計(jì)中Windows GDI貼圖閃爍的解決方法
- 01-10C語(yǔ)言中字符和字符串處理(ANSI字符和Unicode字符)
- 01-10VisualStudio 使用Visual Leak Detector檢查內(nèi)存泄漏
- 01-10在Visual Studio使用C++開(kāi)發(fā)Metro應(yīng)用
- 01-10使用Visual Studio 2010/2013編譯V8引擎步驟分享
- 01-10C++制作俄羅斯方塊


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-11Mac OSX 打開(kāi)原生自帶讀寫NTFS功能(圖文
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 04-02jquery與jsp,用jquery
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置