歡迎您光臨本站 註冊首頁

Visual Studio Code 配置C、C++環境/編譯並運行的流程分析

←手機掃碼閱讀     火星人 @ 2020-06-11 , reply:0

總體流程:

下載安裝vscode
 安裝cpptools插件
 安裝編譯、調試環境
 修改vscode調試配置文件
 下載安裝vscode
 https://code.visualstudio.com/Download  

安裝cpptools插件

打開vscode,按ctrl+p打開快速命令框,輸入以下命令後等待

ext install cpptools

vscode在短暫的聯網查找後會列出插件列表,如圖:

這裡寫圖片描述
 這裡寫圖片描述 

點擊箭頭所指處的按鈕安裝插件,安裝過程可能會有些慢耐心等待
 安裝完成後vscode會提示你重啟vscode,此時重啟即可

安裝編譯、調試環境

(若是電腦上原來裝著codeblocks,Dev C++等可以跳過這步,

直接跳到 【配置系統環境變量path】 這步即可)

目前windows下調試僅支持 Cygwin 和 MinGW。
 這裡使用的是MinGW.
 下面是MinGW的安裝配置過程:
 http://mingw.org/  
 進入官網點擊右側 Download Installer下載安裝器
 打開安裝器點擊install準備安裝:

這裡寫圖片描述 

選擇一個安裝目錄,默認為C:MinGW這裡選擇的是A:MinGW
 點擊Continue開始安裝,安裝過程需聯網,若安裝時提示error則需翻牆安裝
 安裝過程很快,結束後Continue按鈕恢復為可用狀態,點擊完成安裝。

這裡寫圖片描述 

打開MinGW安裝管理器進行進一步配置

這裡寫圖片描述 

注意這裡gdb必選,否則無法調試

這裡寫圖片描述 

選中幾個需要的項右鍵Make for Installation進行標記,其中gcc和g++為c和c++編譯器
 選擇完全部想要安裝的項後點擊左上角Installation菜單下的Apply Changes應用修改,過程需聯網,中間出現error可先繼續,若最後失敗則需翻牆更新,建議翻牆。

【配置系統環境變量path】

然後配置系統環境變量path,這一步為必須
 在 我的電腦 上右鍵 屬性:
 然後按照下面步驟做即可,注意最後新建的項要與之前MinGW安裝位置相對應

Windows7注意,要加入,不是覆蓋!我第一次不小心把原來路徑覆蓋了。。。(因為win7不像win10那麼明顯是加入。。)

這裡寫圖片描述 

再次打開vscode,注意配置系統環境變量path後重啟一下vscode
 注意vscode調試需要在打開的文件夾中進行(注意!是用VSC打開文件夾!!,單獨打開一個單獨的cpp是沒有下面的幾個配置文件出現的!!也就是說,這個cpp要在一個文件夾裡!不像DevCpp和C-Free可以直接調試一個單獨的cpp!!)

打開文件夾後,新建test.cpp進行輸入代碼測試:

這裡寫圖片描述 

如圖示進入調試界面選擇C++:

這裡寫圖片描述
 這裡寫圖片描述 

然後會在工作目錄下的生成一個launch.json的啟動配置文件:

這裡寫圖片描述 

使用下面代碼替換該文件:(只是在vsc自己產生的json文件加了一些行)

launch.json中有很多屬性可以設置, 通過智能提示查看有那些屬性可以設置, 如果要查看屬性的具體含義, 可以把鼠標懸停在屬性上面, 會屬性的使用說明.

   {       "version": "0.2.0",       "configurations": [         {           "name": "(gdb) Launch", // 配置名稱,將會在啟動配置的下拉菜單中顯示           "type": "cppdbg",    // 配置類型,這裡只能為cppdbg           "request": "launch",  // 請求配置類型,可以為launch(啟動)或attach(附加)           "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 將要進行調試的程序的路徑           "args": [],       // 程序調試時傳遞給程序的命令行參數,一般設為空即可           "stopAtEntry": false,  // 設為true時程序將暫停在程序入口處,一般設置為false           "cwd": "${workspaceRoot}", // 調試程序時的工作目錄,一般為${workspaceRoot}即代碼所在目錄           "environment": [],           "externalConsole": true, // 調試時是否顯示控制檯窗口,一般設置為true顯示控制檯           "MIMode": "gdb",           "miDebuggerPath": "C:Program Files (x86)CodeBlocksMinGWingdb.exe", // miDebugger的路徑,注意這裡要與MinGw的路徑對應           "preLaunchTask": "g++", // 調試會話開始前執行的任務,一般為編譯程序,c++為g++, c為gcc           "setupCommands": [             {                "description": "Enable pretty-printing for gdb",               "text": "-enable-pretty-printing",               "ignoreFailures": true             }           ]         }       ]     }

 

注意miDebuggerPath要與MinGw的路徑對應

替換後保存,然後切換至test.cpp,按F5進行調試,此時會彈出一個信息框要求你配置任務運行程序,點擊它~

這裡寫圖片描述 

在這裡隨便選一個或others:

這裡寫圖片描述 

然後用下面代碼替換:

   {      "version": "0.1.0",      "command": "g++",      "args": ["-g","${file}","-o","${fileBasenameNoExtension}.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        }      }    }

 

保存一下,然後切換至test.cpp,再次按F5啟動調試~

這裡寫圖片描述

配置c_cpp_properties.json
 在編輯器中,有小波浪的就是代碼有問題,看下#include,左邊有個燈泡,點擊後跳出配置文件,修改其中的Win32的”includePath”如下,和上文一樣,根據自己的路徑進行調整即可。經測試,下圖中代碼的註冊部分仍是必要部分

   {      "name": "Win32",      "includePath": [        "C:/Program Files/MinGW/include/*",        "C:/Program Files/MinGW/lib/gcc/mingw32/5.3.0/include/*"        "C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/*",        "C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/mingw32/*",        "C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/backward/*"      ],      "browse": {        "limitSymbolsToIncludedHeaders": true,        "databaseFilename": ""      }    }

 

這裡寫圖片描述 

一勞永逸:因為VS需要為每一個文件夾做單獨配置,所以建議把.vscode文件夾放到你常用的文件夾的頂層,這樣就不用重複配置了。
 不用每個新cpp文件就要一套配置。這些配置在你配置好的文件夾內的所有子文件夾和文件都能使用。

這裡寫圖片描述

最後效果:

設置斷點,變量監視,調用堆棧的查看:

這裡寫圖片描述

條件斷點的使用:

這裡寫圖片描述

由於vscode還不支持中文名文件調試,因此最好不要使用中文命名文件



[火星人 ] Visual Studio Code 配置C、C++環境/編譯並運行的流程分析已經有249次圍觀

http://coctec.com/docs/vscode/show-post-237994.html