1. 程式人生 > >徐鬆亮軟體應用教學-基於Visual Studio Code的C語言開發環境搭建

徐鬆亮軟體應用教學-基於Visual Studio Code的C語言開發環境搭建

工欲善其事,必先利其器。後續,本博主要帶領大家,會做多種資料演算法和資料結構的實現,比如說記憶體管理,排序,三次樣條,二叉樹,九宮格,蟻群演算法。。。這些主要用C語言來實現。雖然其他語言有現成的庫,但因為本人主要擅長的是做嵌入式產品開發,目前大多數嵌入式晶片資源仍然有限,主流的開發語言仍然是C語言,所以,我們當前還是以C語言為主,逐步會融入python等。

目錄

安裝軟體

一,Visual Studio Code簡介

  • Visual Studio Code是什麼

    • 第一眼看到它,千萬別以為他是Visual Studio(微軟的綜合性多語言整合開發環境,安裝要幾個G,費用昂貴)!!!
    • Visual Studio Code也是微軟出品,開源免費,跨平臺(linux,MAC,windows)
    • 可按需安裝外掛,自己製作好用的IDE(整合開發環境)。
    • 因為支援外掛的安裝,可以開發python,C,C++,Java,PHP。。。語言的開發。
  • 類似的程式編輯軟體:

    • 注意:不只是下面這些,只是羅列部分,藍色為我本人常用。
    • Notepad++
    • Emacs 
    • Vim
    • Sublime Text3
    • UltraEdit
    • eclipse
    • source insight
  • 為什麼選擇Visual Studio Code

    • 最先宣告的是,所有編輯軟體存在既有價值,如果已經熟悉哪種軟體,繼續使用即可,沒必要一定分出好壞。
    • 微軟出品,大品牌,品質穩定性值得信賴。
    • 免費,開源,爽的不要不要的。
    • 多外掛安裝,按需構建IDE,簡單方便。

二,Cygwin的安裝

  • 為什麼選擇Cygwin

    • 基於Windows的C語言編譯環境,當前主要有下面三種
      • Visual Studio:好用沒話說,就是太大,安裝幾個G,而且常規使用不能用於嵌入式,商業收費。
      • MinGW:如果只是基於Windows開發,不錯的選擇,而且執行速度快。
      • Cygwin:相當於在windows環境中建立一套linux系統,執行速度略低於MinGW(所謂的慢就我們做這點程式碼,也是沒有任何感覺的),但是因為其跨平臺,本人還要做嵌入式的編譯,如ESP8266,嵌入式linux產品等,所以它是我的不二選擇。

三,Visual Studio Code的安裝

  • 安裝軟體

    • 逐步下一步安裝即可,沒有什麼特殊的步驟,一路預設安裝即可,在此不再貼圖。
  • 配置語言為中文(本人因為英文不好,所以仍然使用英文版)

    • 安裝中文語言包
    • View---Command Palette...(或者快捷鍵shift+ctrl+p)

四,外掛的安裝

  • 安裝外掛:C/C++

    • 功能:這個外掛添加了對c/c++語言的支援,包括程式碼格式化、智慧感知、程式碼瀏覽等,但不包含編譯。
    • 安裝截圖:
  • 安裝外掛:code runner

    • 功能:
      • 可以動態的執行選中的程式碼區塊。
      • 為多種語言執行程式碼片段或程式碼檔案:C, C++, Java, JavaScript, PHP, Python, Perl, Perl 6, Ruby, Go, Lua, Groovy, PowerShell, BAT/CMD, BASH/SH, F# Script, F# (.NET Core), C# Script, C# (.NET Core), VBScript, TypeScript, CoffeeScript, Scala, Swift, Julia, Crystal, OCaml Script, R, AppleScript, Elixir, Visual Basic .NET, Clojure, Haxe, Objective-C, Rust, Racket, AutoHotkey, AutoIt, Kotlin, Dart, Free Pascal, Haskell, Nim, D, 和定製命令。
    • 安裝截圖:
  • 安裝外掛:Native Debug 

    • 功能
      • 用於gdb圖形化除錯你的C/C++程式
      • 支援GDB和LLDB
    • 安裝截圖:

五,例項驗證

  • 電腦端新建資料夾

    • 目的:用於存放工作區,在此我建立如下資料夾。
    • 在visual_studio_code_c_test資料夾裡建立code資料夾,在code資料夾建立一個c程式檔案:
      • 在xsl_test.c中寫入如下例項程式碼:
      • #include <stdio.h>
            
        int main (int argc, char **argv)
        {
            int x = 0;
            int y = 1;
            printf("xsl test:g_var = %d, l_var = %d.\r\n", x, y);
            return 0;
        }
  • Visual Studio Code生成一個工作區

    • File---Save Workspace as...
  • Visual Studio Code工作區加入資料夾

  • Visual Studio Code生成除錯並修改檔案launch.json

    • 此時,會建立出一個launch.json的檔案,我們把如下程式碼替換原始碼
    • {
          "version": "0.2.0",
          "configurations": [
              {
                  "name": "C++ Launch (GDB)",                 // 配置名稱,將會在啟動配置的下拉選單中顯示
                  "type": "cppdbg",                           // 配置型別,這裡只能為cppdbg
                  "request": "launch",                        // 請求配置型別,可以為launch(啟動)或attach(附加)
                  "launchOptionType": "Local",                // 偵錯程式啟動型別,這裡只能為Local
                  "targetArchitecture": "x86",                // 生成目標架構,一般為x86或x64,可以為x86, arm, arm64, mips, x64, amd64, x86_64
                  "program": "${file}.exe",                   // 將要進行除錯的程式的路徑
                  "miDebuggerPath":"D:/cygwin64/bin/gdb.exe", // miDebugger的路徑,注意這裡要與cygwin/MinGw的路徑對應
                  "args": ["blackkitty",  "1221", "# #"],     // 程式除錯時傳遞給程式的命令列引數,一般設為空即可
                  "stopAtEntry": false,                       // 設為true時程式將暫停在程式入口處,一般設定為false
                  "cwd": "${workspaceRoot}",                  // 除錯程式時的工作目錄,一般為${workspaceRoot}即程式碼所在目錄
                  "externalConsole": true,                    // 除錯時是否顯示控制檯視窗,一般設定為true顯示控制檯
                  "preLaunchTask": "gcc"                    // 除錯會話開始前執行的任務,一般為編譯程式,c++為g++, c為gcc
              }
          ]
      }
  • 截圖如下
  • Visual Studio Code生成並修改任務檔案tasks.json

    • 進行到此步就可以看到工作區已經生成了tasks.json檔案
    • 用如下程式碼替換原tasks.json程式碼
    • {
          "version": "2.0.0",
          "command": "gcc",//對應"preLaunchTask"c++為g++, c為gcc
          "args": ["-g","${file}","-o","${file}.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
              }
          }
      }
    • 截圖如下:
  • Visual Studio Code執行debug

    • 開啟xsl_test.c檔案,設定斷點.
    • 執行Debug,如下圖
    • 此時,應該可以看到已經進入了模擬環境,如下圖:
    • 我們執行以下單指令執行命令,看終端是否能夠顯示列印內容:
    • 我們可以看到,終端成功顯示了我們的程式列印內容。
    • 到此,可以說明,我們的環境搭建成功。

六,說明與注意事項

  • 上面執行的步驟,只是教大家建立最基本的C語言開發環境,並沒有好的框架。
  • 上面的兩個配置檔案(launch.json和tasks.json),並不是最優配置,只夠演示使用,所以有很多不合理的地方。

七,工程原始碼下載