Visual Studio Code 運行&&調(diào)試c語言

關(guān)于現(xiàn)在的c語言編譯器不是太老就是就是界面不太友好或者是體積太大勤晚。如:

  • Visual C++ 6.0雖說在Windows上是一個經(jīng)典的編譯器柴我,但是真的是太老了鸦列,發(fā)布時間是1998年发乔,20年了茄螃,早已不受官方支持气筋,而且在Windows10上兼容性也是一個巨大的問題拆内,因此,還是放棄折騰宠默;
  • 對于Dev C++來說體積小巧麸恍,操作簡便,支持中文,但是bug太多抹沪,幾乎調(diào)試不了刻肄,同時已經(jīng)有好幾年沒有得到更新,而且界面也不是太友好融欧,至少已經(jīng)不具備現(xiàn)在的人的審美特點了敏弃。

  • 全宇宙最強(qiáng)大IDE——微軟的Visual Studio,雖說能彌補(bǔ)上面兩個的缺點噪馏,但是嘛體積確實太大了麦到,動不動就是幾個G,對于c語言初學(xué)者確實不太友好欠肾,而且操作太復(fù)雜了瓶颠。

所以最后發(fā)現(xiàn)了Visual Studio Code(下面簡稱VS Code)。

VS Code簡介

VS Code是微軟推出的一個跨平臺的開源編輯器董济。雖然它只是個編輯器但是只要你愿意折騰步清,還是能折騰出IDE(Integrated Development Environment ,集成開發(fā)環(huán)境)所具有的功能虏肾。

運行&&調(diào)試c語言所需條件

  1. 一臺電腦,Windows欢搜、Linux或者M(jìn)ac都可以封豪;
  2. 下載VS Code,官網(wǎng)下載地址炒瘟,Github托管地址吹埠;
  3. c語言編譯器,這里選擇的是gcc(GNU Compiler Collection)疮装,下載Mingw-w64

之后安裝缘琅。

安裝

安裝VS Code

下載好VS Code后,安裝時可以自己選擇安裝路徑廓推,其他的默認(rèn)就好刷袍。

安裝Mingw-w64

安裝Mingw-w64時,在Architecture一欄如果32位就選i686樊展,如果64位就選擇x86_64呻纹,其他的默認(rèn)就好,安裝目錄我是選擇的C盤根目錄专缠。

安裝C/C++支持插件

打開VS Code在插件商店搜索C/C++這個插件進(jìn)行安裝雷酪。

擴(kuò)展商店

配置

新建一個文件夾,然后涝婉,右鍵選擇用VS Code打開哥力,打開之后新建一個.c文件,進(jìn)行環(huán)境配置墩弯。

配置 launch.json文件

點擊左邊活動欄的調(diào)試按鈕吩跋,然后蟀淮,點擊配置按鈕選擇環(huán)境C++(GDB/LLDB);

配置launch

之后在這個文件夾里會多出一個文件夾.vscode钞澳,這個文件夾里會生成一個json文件——launch.json怠惶,然后將下面的代碼替換掉里面的代碼;

launch.json

{
    // 使用 IntelliSense 了解相關(guān)屬性轧粟。 
    // 懸停以查看現(xiàn)有屬性的描述策治。
    // 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        {
            "name": "(gdb)c_launch",
            "type": "cppdbg",
            "request": "launch",
            "targetArchitecture": "x64",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",
            "miDebuggerPath": "C:/mingw-w64/mingw64/bin/gdb.exe",
            "MIMode": "gdb",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceRoot}",
            "environment": [],
            "internalConsoleOptions": "openOnFirstSessionStart",
            "externalConsole": true,
            "preLaunchTask": "gcc"
        }
    ]
}

其中兰吟,第12行的targetArchitecture根據(jù)自己所需的構(gòu)架來更改通惫,第14行的miDebuggerPath需要按照Mingw-w64的安裝目錄來更改,其他的默認(rèn)就好混蔼;

配置 tasks.json文件

在狀態(tài)欄上選擇任務(wù)履腋,在下拉選項中選擇配置任務(wù);然后選擇使用模板創(chuàng)建 tasks.json 文件這個選項;

配置任務(wù)

接著就是選擇Others 運行任意外部命令的示例這個選項惭嚣;

選擇任務(wù)模板

隨之則會生成一個tasks.json的文件遵湖,然后將下面的代碼替換掉里面的代碼;

tasks.json

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "gcc",
    "args": ["-Wall", "-g", "${file}", "-o", "${fileBasenameNoExtension}.exe"],
    "echoCommand": true,
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceFolder}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}

到了這里就可以對c語言進(jìn)行調(diào)試了晚吞,下面寫一段c語言代碼進(jìn)行測試:

調(diào)試測試

test.c

#include <stdio.h>

int main(void)
{
    int a = 1;
    int b = 2;
    int c = 0;

    c = a + b;
    
    printf("%d + %d = %d", a, b, c);

    return 0;
}

但是需要注意的是c語言文件要與.vscode這個文件夾處在同一級目錄延旧,即是:

文件結(jié)構(gòu)

但是還存在著一個問題——頭文件哪里會出現(xiàn)一條綠色的波浪線,并且沒有自動補(bǔ)全的功能槽地;

c語言測試

配置 c_cpp_properties.json文件

將光標(biāo)放在頭文件哪里會出現(xiàn)一個黃色的小燈泡迁沫,點擊之后選擇Edit "includePath" setting,隨之會多出一個json文件c_cpp_properties.json捌蚊,然后找到與Windows相關(guān)的頭文件路徑配置代碼集畅,即在"name": "Win32"的下面。根據(jù)Mingw-w64的安裝路徑找到頭文件的所在路徑缅糟,分別放在includePathpath中挺智,即是下面有注釋的地方:

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "/usr/include",
                "/usr/local/include",
                "${workspaceRoot}"
            ],
            "defines": [],
            "intelliSenseMode": "clang-x64",
            "browse": {
                "path": [
                    "/usr/include",
                    "/usr/local/include",
                    "${workspaceRoot}"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            },
            "macFrameworkPath": [
                "/System/Library/Frameworks",
                "/Library/Frameworks"
            ]
        },
        {
            "name": "Linux",
            "includePath": [
                "/usr/include",
                "/usr/local/include",
                "${workspaceRoot}"
            ],
            "defines": [],
            "intelliSenseMode": "clang-x64",
            "browse": {
                "path": [
                    "/usr/include",
                    "/usr/local/include",
                    "${workspaceRoot}"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            }
        },
        {
            "name": "Win32",
            "includePath": [
                "C:/mingw-w64/mingw64/include",
                "C:/mingw-w64/mingw64/x86_64-w64-mingw32/include",
                //根據(jù)Mingw-w64的安裝路徑更改
                "${workspaceRoot}"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE"
            ],
            "intelliSenseMode": "msvc-x64",
            "browse": {
                "path": [
                    "C:/mingw-w64/mingw64/include",
                    "C:/mingw-w64/mingw64/x86_64-w64-mingw32/include",
                    //根據(jù)Mingw-w64的安裝路徑更改
                    "${workspaceRoot}"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            }
        }
    ],
    "version": 3
}

現(xiàn)在沒有了綠色波浪線,也可以實現(xiàn)自動補(bǔ)全了溺拱,所以配置完成逃贝。

調(diào)試

調(diào)試
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市迫摔,隨后出現(xiàn)的幾起案子沐扳,更是在濱河造成了極大的恐慌,老刑警劉巖句占,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沪摄,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)杨拐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門祈餐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哄陶,你說我怎么就攤上這事帆阳。” “怎么了屋吨?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵蜒谤,是天一觀的道長。 經(jīng)常有香客問我至扰,道長鳍徽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任敢课,我火速辦了婚禮阶祭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘直秆。我一直安慰自己濒募,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布切厘。 她就那樣靜靜地躺著萨咳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疫稿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天鹃两,我揣著相機(jī)與錄音遗座,去河邊找鬼。 笑死俊扳,一個胖子當(dāng)著我的面吹牛途蒋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播馋记,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼号坡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了梯醒?” 一聲冷哼從身側(cè)響起宽堆,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茸习,沒想到半個月后畜隶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年籽慢,在試婚紗的時候發(fā)現(xiàn)自己被綠了浸遗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡箱亿,死狀恐怖跛锌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情届惋,我是刑警寧澤髓帽,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站盼樟,受9級特大地震影響氢卡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晨缴,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一译秦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧击碗,春花似錦筑悴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至械拍,卻和暖如春突勇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坷虑。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工甲馋, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人迄损。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓定躏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親芹敌。 傳聞我的和親對象是個殘疾皇子痊远,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354