1. 程式人生 > >VSCode的第一個C++程式(Linux)

VSCode的第一個C++程式(Linux)

引言

VSCode作為微軟推出的一款免費的輕量級的整合開發環境,可謂是良心之作。它擁有VS的高顏值,而且像瑞士軍刀一樣,擁有豐富的外掛,c/c++、java、python、js、html等等,它都能輕鬆駕馭。

目錄

安裝

VSCode的安裝

在linux系統下安裝VSCode的命令:

# 在安裝包所在目錄開啟終端。
# .deb檔案
$ sudo dpkg -i xxxx.deb

GCC的安裝

首先檢視系統是否安裝了GCC.如果出現了GCC的版本資訊就表明系統中已經安裝了GCC.

# 檢視GCC版本
$ gcc -v

# 安裝gcc
$ sudo apt-get install gcc

Get Started

開啟VSCode,我們可以看到它的歡迎介面。

image_1cfpgiil9tkjpauoo3u9dukj19.png-121.3kB

安裝外掛

在VSCode編寫和除錯程式是需要安裝相關的外掛才能進行的。
在這裡我們選擇安裝C/C++C++ IntellisenseCode RunnerInclude Autocomplete這四外掛。
我們點選擴充套件的圖示,在搜尋欄裡搜尋外掛的名稱。

image_1cfrt4f0m1g151hj01cgrpkq1acq1p.png-179.9kB

點選安裝,在安裝完成之後,點選重新載入,這個外掛就會生效。

image_1cfrtd5l31cn81fkh1vvj1pq5110g46.png-133.1kB

其它的外掛的安裝也是如此。

helloworld

新建一個helloword資料夾,作為我們此次的工作區。在資源管理器中開啟這個資料夾。
開啟這個資料夾後,會發現資料夾沒有原始檔。這時我們需要新建一個helloworld.cpp原始檔

image_1cfrtk125oig185qjb6kgb17jj4j.png-114.2kB

這時我們可以編寫helloworld程式了。

image_1cfrtoseg1k181n1j1i9dgin1i995g.png-77.5kB

配置智慧感知

由於資料夾的配置資訊不完整,我們需要自己新增缺少的配置資訊。通過快捷方式Ctrl+Shift+P執行C/CPP: Edit configuration ...命令新增缺少的資訊並生成c_cpp_properties.json檔案。

image_1cfrttn2uekcutq5g710ob179m5t.png-72.5kB

在Linux系統中,主要是注意"compilerPath": "/usr/bin/gcc",,如果你的gcc路徑不是這個的話就需要在終端裡使用whereis gcc去檢視gcc的路徑。
image_1cfru8cck1ms9jt1uck1irv14jh7a.png-94.1kB

構建程式碼

如果你想從VS Code構建你的應用程式,你需要生成一個tasks.json檔案;

開啟命令面板(Ctrl + Shift + P)。選擇Tasks:Configure Tasks ...命令,單擊從模板建立tasks.json檔案,您將看到任務執行模板列表,選擇Others。

image_1cfs05hs418j3n3r12s61tri1qucp.png-102kB

image_1cfs06dhok1bl0v1uud17d81srl16.png-99.6kB

image_1cfs08mf9mc71ks8sru156318vu3j.png-93.6kB

最終生成tasks.json檔案

image_1cfs09vkt1ecgo3cabl1q6c8bt4g.png-85kB

將檔案內容修改如下:

image_1cfs1e1of1k3113j983ih191jnp8e.png-101.9kB

程式的輸出在終端中顯示,要在終端向程式輸入資料,那麼還需要進行一點配置。
在命令面板(Ctrl+Shift+P)搜尋使用者配置,在使用者配置檔案中,找到Run Code configuration下的code-runner.runInTerminal的值改為true,更改後的結果在右邊。

image_1cfs0lv101t0s1uk61kpav7n1f585a.png-198.1kB

我們將當前頁面調整到我們的源程式編輯頁面,點選右上角的小三角形,即可執行我們的程式了。到目前為止,helloworld程式就這樣順利運行了。

image_1cfs0ols9vph16d1skp113f19t65n.png-159.1kB

除錯程式碼

為了能夠除錯,我們還需要生成launch.json檔案。

瀏覽到除錯的視窗,去新增配置。選擇C++(GDB/LIDB),生成launch.json檔案。

image_1cfs0qj5u1r251kt32bo6uabr674.png-125.8kB

image_1cfs0t69q17e7vnm1v8r137l1l7781.png-136.3kB

將launch.json檔案內容更改如下:

image_1cfs1mu29qhkhh01vnnsep1jeg8r.png-188.1kB

在進行除錯(F5)的時候,一定要將當前頁面調整到我們的源程式編輯頁面。不然會出錯。

image_1cfs52lss9r21qnn1kb41m091if698.png-81.1kB

寫在最後

萬事開頭難,其實也不難,只要掌握了方法,一切都不是問題,在寫完helloworld程式之後,再寫其他的程式就可以把.vscode直接拿來用,略作修改即可。

附:json檔案原始碼

//tasks.json
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build", //在launch.json檔案中有用到
            "type": "shell",
            "command": "g++",
            "args": [
                "-g", "helloworld.cpp"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}
//launch.json
{
    // 使用 IntelliSense 瞭解相關屬性。 
    // 懸停以檢視現有屬性的描述。
    // 欲瞭解更多資訊,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",                                 //配置名稱,會在啟動配置的下拉選單中顯示
            "type": "cppdbg",                                       //配置型別,只能為cppdbg
            "request": "launch",                                    //請求型別,可以為launch或attach
            "program": "${workspaceFolder}/a.out",             //將要除錯的程式的路徑
            "args": [],                                             //除錯時傳遞給程式的命令列引數
            "stopAtEntry": false,                                   //設為true程式會暫停在入口處
            "cwd": "${workspaceFolder}",                            //除錯程式時的工作目錄
            "environment": [],                                      //環境變數
            "externalConsole": true,                                //除錯時是否顯示控制檯視窗
            "MIMode": "gdb",                                        //指定連線的偵錯程式,可以為gdb或lldb
            "miDebuggerPath": "/usr/bin/gdb",                       //gdb路徑
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build"                                //除錯開始前執行的任務,一般為編譯程式
        }
    ]
}