久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

windows下使用vscode編寫運行以及調(diào)試C/C++

 ZhouAndrew 2019-04-18

最后更新于2019年4月4日:

多次更新,內(nèi)容較多,篇幅較大,但如果是喜歡visual stdio code這款編輯器的話建議仔細(xì)閱讀,有疑問的地方可以在評論區(qū)留言 

 

vscdoe是一款稍有研究就會為之驚嘆的軟件

vscode支持類似于vs的斷點調(diào)試c/c++,,也可以直接編譯&運行c/c++

 

先是編譯運行 c/c++的方法                             

 

微軟官方起初設(shè)定的科學(xué)做法(這也是現(xiàn)在的科學(xué)做法)是通過在vscode集成控制臺寫命令行的方式來實現(xiàn)編譯運行程序的,但也可以通過code runner插件來簡化步驟,實現(xiàn)一鍵編譯執(zhí)行

但無論是什么方法,因為vscode本身并不帶有編譯器,都需要自己提前安裝好一個c/c++編譯器(如mingw,clang)并且配置好環(huán)境變量(不會請點擊這里)

控制臺下編譯運行C/C++(如果不懂命令行操作可以暫時跳過這里):

按 ctrl + ~ 打開vscode控制臺,點擊終端,在vscode的終端下操作其實就是在windows下的cmd或者powershell下操作,一切的編譯運行等操作可以用輸入命令行的方式來實現(xiàn),只要掌握各自的編譯器的命令行指令就能讓程序在vscode界面上運行起來

c/c++編譯器的那一套自然不在話下(如下圖),先用cd 命令切換到源文件目錄或者直接輸入完整路徑名,然后用編譯器指令(假設(shè)編譯器是mingw) g++ xxx.cpp -o xxx.exe編譯,接著再輸入./xxx.exe就可以運行編譯好的程序

其他的c/c++編譯器如clang包括其他語言(Python ,Go,Java...)都可以類似的這樣操作

 

 

 

便捷方式是使用code runner插件:

code runner插件默認(rèn)的c/c++編譯器是gcc/g++,需要提前安裝好并且設(shè)置好環(huán)境變量,,通常選擇MinGW或者MinGW-w64,建議選mingw-w64,,一般用戶建議下載離線版解壓后添加環(huán)境變量,,離線版下載地址:鏈接

不會請看:安裝mingw-w64具體過程

同時,code runner插件使用的編譯器是可以被修改為gcc/g++以外的編譯器的(比如clang,MSVC),有這方面需要請看:vscode修改code runner使用的編譯器

mingw和mingw-w64是有區(qū)別的,直觀的說,mingw-w64更加強大

安裝好并且設(shè)置好二者中的一個,并設(shè)置好環(huán)境變量后在cmd下輸入gcc -v確認(rèn)是否成功,出現(xiàn)關(guān)于gcc -v的相關(guān)信息(如下圖)就表示成功

 

接著點擊vscode左側(cè)面板中的插件商店按鈕

安裝好下面兩個插件

C/C++

Code runner

如果需要中文請安裝一個chinese插件

 

注意,如果沒安裝clang的話不要安裝推薦插件里的c/c++ clang插件,否則應(yīng)該會報錯

 

安裝好后重啟一下vscode這樣就能在右上角看見一個三角形了,,打開文件點擊就能編譯執(zhí)行

但此時會有這樣一個問題

如果程序里有scanf()等請求鍵盤輸入數(shù)據(jù)的函數(shù),,此時無法從鍵盤輸入數(shù)據(jù),,并且程序無法結(jié)束需要關(guān)閉重啟vscode才能重新執(zhí)行

 

 

解決辦法是依次打開:文件>首選項>設(shè)置>用戶設(shè)置>拓展>Run Code Configuration

找到  Run In Terminal  打上勾 這樣運行的程序就會運行在vscode的集成控制臺上

在工作區(qū)設(shè)置也有這個選項,,但工作區(qū)設(shè)置只會對工作區(qū)生效

這樣問題就能解決了

 運行一段測試代碼

復(fù)制代碼
#include<bits/stdc++.h>  
using namespace std;  
  
int main(){  
    cout<<"hello"<<endl;  
    int u;  
    while(cin>>u){  
        cout<<u*u<<endl;  
    }  
}  
復(fù)制代碼

 

這時輸出信息會顯示在終端欄下面

隨便輸入測試數(shù)據(jù)

可以看到下圖的效果

 

點擊右上角的垃圾桶能提前結(jié)束程序運行

code runner插件有一個局限,code runner插件的原理其實是自動在控制臺下幫助我們輸入g++ xxx.cpp -o xxx.exe(假設(shè)是默認(rèn)情況)這條編譯指令,不會再添加額外的命令,比如如果代碼中使用了winsock2用g++編譯的話需要額外添加-lwsock32指令,即完整指令為g++ xxx.cpp -o xxx.exe -lwsock32,此時直接使用code runner的話會無法編譯,這種情況應(yīng)該使用上面提到的vscode集成控制臺手動輸入編譯指令編譯

 

調(diào)試 c/c++方法          

首先一點:不支持中文路徑!??!(文件名和整個文件路徑名中都不能有中文,否則無法調(diào)試,,是由mingw不支持中文路徑造成的)

實際效果類似vs那樣按f5斷點調(diào)試

首先選中一個用于存放各種代碼的文件夾作為根路徑也就是工作區(qū),,因為調(diào)試只會對根路徑下的文件生效!??!

在vscode中打開這個文件夾(文件>打開文件夾>選中你的文件夾)

之后再在這個文件夾新建一個 .vscode 的文件夾,不要忘了開頭的 "." 號(如果已有則不必再額外新建)

再在.vscode文件夾中新建兩個配置文件 launch.json 和 tasks.json

類似于下圖

 

之后再把下面的兩個段代碼粘貼到對應(yīng)的文件里

這里需要修改一處:launch中 "miDebuggerPath" 選項需要設(shè)置為你的調(diào)試器(gdb.exe)所在位置 這里的是我電腦上MinGW -w64的安裝位置

無論安裝的是MinGW還是mingw-w64,,都會有一個gdb.exe在安裝目錄的bin文件夾下,,一定要把對應(yīng)的路徑修正否則無法調(diào)試

launch.json

復(fù)制代碼
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C/C++",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "C:/Program Files/mingw64/bin/gdb.exe",
            "preLaunchTask": "g++",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
        },
    ]
}
復(fù)制代碼

tasks.json

復(fù)制代碼
{
    "version": "2.0.0",
    "command": "g++",
    "args": [
        "-g",
        "${file}",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}.exe"
    ],
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": [
            "relative",
            "${workspaceRoot}"
        ],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    },
    "group": {
        "kind": "build",
        "isDefault": true
    }
}
復(fù)制代碼

之后打開在當(dāng)前工作區(qū)子目錄下的.c/cpp文件就可以添加斷點進(jìn)行調(diào)試了

此時可以按 ctrl+shift+b 直接調(diào)用配置好的g++ task 編譯程序而不運行程序,類似于一些IDE的編譯選項

如果我們要查看當(dāng)前某個變量的值或者某個表達(dá)式的值,可以像vs一樣在左側(cè)的調(diào)試面板添加監(jiān)視

也可以在下方的調(diào)試控制臺里直接輸入表達(dá)式或者變量名

當(dāng)然,最簡單的還是鼠標(biāo)直接移動到變量上,往往直接就顯示出來了,如果靠這樣不能解決的話,就試試上面兩種方法

 

vscode支持實時報錯,遇到找不到頭文件的問題請點擊 

 

 

也可以讓c/c++程序的調(diào)試在vscode的集成控制臺上進(jìn)行,不在額外顯示黑窗口,類似于code runner的界面效果

只需將launch.json中的 "externalConsole" 項由 true 改為 false 

根據(jù)個人喜好設(shè)置,調(diào)試其他語言的程序時也有這個選項

效果

類似于code runner的問題: 如果是需要有額外的編譯指令如-lwsock32,需要調(diào)試前事先在tasks.json的args處添加上對應(yīng)的指令,或者用 // 注釋掉launch.json中的 preLaunchTask:"g++"(啟動調(diào)試前執(zhí)行g(shù)++編譯按tasks指令格式編譯) 這一項,然后自己在按ctrl + ~ 打開終端手動編譯好后再執(zhí)行調(diào)試

 

記?。赫{(diào)試是屬于工作區(qū)設(shè)置,,當(dāng)前配置的調(diào)試環(huán)境只會對當(dāng)前.vscode文件夾所在路徑下的文件生效,,如果要換用別的文件夾,把.vscode這個文件夾拷貝過去即可

 

最后,我使用的主題插件為tangming Themes,感興趣的可以去插件商店下載,里面一共四個主題

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多