VScode-配置`C/C++`環境---2020

VScode-配置C/C++環境

在這裏插入圖片描述

準備工作

下載並安裝相應軟件

C/C++

  • 下載VScode最新版,第一次使用VS Code時你應該知道的一切配置,按照這篇文章安裝相應插件
  • 下載並安裝MingW-64,驗證是否安裝好MingW,驗證方式:
    命令行cmd,輸入g++ -v,``gcc -v,gdb -v若輸出一大段信息,則說明安裝成功(此處不詳述,自行百度)

添加MingW環境變量

  • 環境變量
  1. windows環境下,右鍵點擊此電腦 -> 屬性 -> 高級系統設置 -> 高級 -> 環境變量打開如下圖所示窗口
  1. 點擊新建添加一個環境變量,點擊編輯修改一個環境變量,變量名和變量值設置時,不要含有空格,也不要使用中文,多個路徑之間使用; 分隔。通常情況下用戶變量一經修改後會立即生效,而系統變量需要重啓電腦後才能生效,對於正在運行的程序需要關閉後再重新運行,新設置才能生效
  • 添加MingW環境變量

Mingw所在的bin文件夾添加到環境變量的path中去,比如我將 Mingw 下載到了 E 盤,添加環境變量示例如下:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-6Lvd4xT0-1584415323383)(https://s1.ax1x.com/2020/03/16/8tejpV.png)]

工作空間設置,只針對當前項目有效。比如說我們可以在這裏面要求當前項目的代碼統一使用製表符,而不需要要求每一個團隊成員去修改各自的配置文件。

  • 驗證

MinGW安裝並導入文件後,其中包含了C與C++這兩個編譯環境,操作:win + R ,輸入cmd進入命令行模式,輸入gcc --hg++ --h,(h前面有兩個 - )具體操作如下:如未出現,可以嘗試重啓電腦;
在這裏插入圖片描述

vscode 全局變量

- {workspaceRoot} VS Code當前打開的文件夾
- \${file} 當前打開的文件
- \${relativeFile} 相對於workspaceRoot的相對路徑
- \${fileBasename} 當前打開文件的文件名
- \${fileDirname} 所在的文件夾,是絕對路徑
- \${fileExtname} 當前打開文件的拓展名,如.json
- \${cwd} the task runner's current working directory on startup

.vscode文件夾的作用

在項目的根目錄下新建一個vscode文件夾,說明這個文件夾代表的是當前項目的配置

工作空間設置,只針對當前項目有效。比如說我們可以在這裏面要求當前項目的代碼統一使用製表符,而不需要要求每一個團隊成員去修改各自的配置文件。

lunch.json

{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": "(gdb) Launch", // 配置名稱,將會在啓動配置的下拉菜單中顯示
      "type": "cppdbg", // 配置類型,cppdbg對應cpptools提供的調試功能;可以認爲此處只能是cppdbg
      "request": "launch", // 請求配置類型,可以爲launch(啓動)或attach(附加)
      "program": "${fileDirname}/${fileBasenameNoExtension}.o", // 將要進行調試的程序的路徑
      "args": [], // 程序調試時傳遞給程序的命令行參數,一般設爲空即可
      "stopAtEntry": false, // 設爲true時程序將暫停在程序入口處,相當於在main上打斷點
      "cwd": "${workspaceFolder}", // 調試程序時的工作目錄,此爲工作區文件夾;改成${fileDirname}可變爲文件所在目錄
      "environment": [], // 環境變量
      "externalConsole": false, // 爲true時使用單獨的cmd窗口,與其它IDE一致;18年10月後設爲false可調用VSC內置終端
      "MIMode": "gdb", // 指定連接的調試器,可以爲gdb或lldb。
      "setupCommands": [
        // 模板自帶,好像可以更好地顯示STL容器的內容,具體作用自行Google
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "build",
      "windows": {
        "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
        "miDebuggerPath": "E:\\mingw-w64\\mingw64\\bin\\gdb.exe" // 調試器路徑,Windows下後綴不能省略,Linux下則不要
      },
      "osx": {
        "externalConsole": true
      }
    }
  ]
}

tasks.json

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build",
      "type": "process",
      "command": "g++",
      "args": [
        "-g",
        "-Wall",
        "-std=c++14",
        "-lm",
        "${file}",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}.o"
      ],
      "presentation": {
        "echo": false,
        "reveal": "silent",
        "showReuseMessage": false
      },
      "problemMatcher": "$gcc",
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "windows": {
        "args": [
          "-g",
          "-Wall",
          "-std=c++14",
          "-lm",
          "${file}",
          "-o",
          "${fileDirname}/${fileBasenameNoExtension}.exe"
        ]
      }
    },
    {
      "label": "run",
      "type": "shell",
      "dependsOn": "build",
      "command": "${fileDirname}/${fileBasenameNoExtension}.o",
      "presentation": {
        "focus": true
      },
      "group": {
        "kind": "test",
        "isDefault": true
      },
      "windows": {
        "command": "${fileDirname}/${fileBasenameNoExtension}.exe"
      }
    }
  ]
}

settings.json

{
    "files.exclude": {
        "**/*.o": true,
        "**/*.exe": true,
        "**/*.class": true,
        "**/.classpath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.factorypath": true
    }
}

注意

  • 如果你想要使用以上配置文件,請將lsunch.json文件中的調試器路徑改爲你的相應路徑示例如下
  • “miDebuggerPath”: “E:\mingw-w64\mingw64\bin\gdb.exe” // 調試器路徑,Windows下後綴不能省略,Linux下則不要

用戶設置和工作空間設置

  • 用戶設置:這種方式進行的設置,會適用於該用戶打開的所有工程/實例

  • 工作空間設置:工作空間是指使用VScode打開的某個文件夾,在該文件夾下會創建一個名爲。vscode的文件夾,保存着項目的相應設置。工作空間的設置會覆蓋用戶的設置。

  • vscode的配置文件setting.json的UI界面或者json形式

  1. UI界面
    • 進入設置界面,按下快捷鍵Ctrl + , 進入設置,可以選擇用戶設置或者工作區設置
  2. json形式界面
    • 按下快捷鍵`Ctrl + Shift + P``,輸入Preferences: Open User Settings或Preferences: Open Workspace Settings。可以進入相應設置。
      在這裏插入圖片描述

每個人都有自己的偏好,在使用VS Code進行開發時,都會根據自己的習慣來對VS Code進行用戶級別的配置。但是,當多人共同完成某個項目的時候,該項目會有一定的編碼規範,如: 編輯某個語言時的設置,代碼的縮進等等,這個時候就需要對該項目進行單獨的工作空間級別的設置。

在UI界面中,將鼠標放到設定左邊的空白位置會顯示出一個齒輪,其中有重置設定/複製設定/複製設定到json三個選項. 因此在團隊協助中, 可以很輕鬆地分享項目的特定設置.

  • 參考文章,除上述之外,還有針對特定的語言的編輯設定,以及安全性設定,現在暫時不深入研究

牛刀小試

在這裏插入圖片描述

常見錯誤

在這裏插入圖片描述

  • 找不到.exe文件,大概率是以爲文件名包含中文,去除文件名中的中文即可
  • 其他錯誤參考文章 → zhihu

總結

  • 安裝完 MingW 並添加環境變量之後,我們其實是可以直接編程的,但是你必須要會要學會一些基本 shell 命令,比如你寫了一個A.cpp文件,在命令行中輸入 g++ A.cpp就會在當前目錄下編譯生成一個 A.exe 的可執行文件,此時你點擊運行exe文件即可運行(一步操作:g++ -o A.cpp也可)。如果你想要調試,命令行 gdb A.exe
  • 以上就是在命令行界面中簡單的編譯運行一個 c++ 文件,其實VScode本質是一個編輯器,想要利用他來編譯運行調試C++文件,我們就必須配置幾個文件,讓他自動幫我們輸入一些命令,並實現UI界面;如果給編輯器配置上編譯環境,那麼那就是一個IDE(集成開發環境)
  • 配置完環境變量一定要測試一下是否成功,不成功可以重啓電腦再測試
  • 報錯的時候能將錯誤的關鍵要點找出來,否則上網也找不出是啥原因
  • 一些關鍵詞:GCC、gcc、g++、gdb、MingW、clang、MSVC

Reference


版權聲明:本文爲原創文章,版權歸本人所有,轉載請註明出處!
所有原創文章採用 知識共享署名-非商業性使用4.0國際許可協議 進行許可。
原文鏈接:https://www.betterman.xyz/94.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章