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

關于現(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)在的人的審美特點了。

  • 全宇宙最強大IDE——微軟的Visual Studio,雖說能彌補上面兩個的缺點,但是嘛體積確實太大了,動不動就是幾個G,對于c語言初學者確實不太友好,而且操作太復雜了。

所以最后發(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或者Mac都可以;
  2. 下載VS Code,官網(wǎng)下載地址,Github托管地址;
  3. c語言編譯器,這里選擇的是gcc(GNU Compiler Collection),下載Mingw-w64

之后安裝。

安裝

安裝VS Code

下載好VS Code后,安裝時可以自己選擇安裝路徑,其他的默認就好。

安裝Mingw-w64

安裝Mingw-w64時,在Architecture一欄如果32位就選i686,如果64位就選擇x86_64,其他的默認就好,安裝目錄我是選擇的C盤根目錄。

安裝C/C++支持插件

打開VS Code在插件商店搜索C/C++這個插件進行安裝。

擴展商店

配置

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

配置 launch.json文件

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

配置launch

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

launch.json

{
    // 使用 IntelliSense 了解相關屬性。 
    // 懸停以查看現(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ù)自己所需的構架來更改,第14行的miDebuggerPath需要按照Mingw-w64的安裝目錄來更改,其他的默認就好;

配置 tasks.json文件

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

配置任務

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

選擇任務模板

隨之則會生成一個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語言進行調(diào)試了,下面寫一段c語言代碼進行測試:

調(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這個文件夾處在同一級目錄,即是:

文件結構

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

c語言測試

配置 c_cpp_properties.json文件

將光標放在頭文件哪里會出現(xiàn)一個黃色的小燈泡,點擊之后選擇Edit "includePath" setting,隨之會多出一個json文件c_cpp_properties.json,然后找到與Windows相關的頭文件路徑配置代碼,即在"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)自動補全了,所以配置完成。

調(diào)試

調(diào)試
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容