昨天有伙伴私信我,為什么我用C語言寫的hello world幾行代碼,在編譯器里面報錯了呢?
然后我讓她截個圖發(fā)我,卻發(fā)現(xiàn)是她的VScode編譯器沒有配置好C/C++的編譯環(huán)境,于是我給她解決完問題后,又想著可能還是有其他伙伴會遇到類似的問題,于是搜索一番之后將這篇我認為最細致的一篇文章轉(zhuǎn)載分享給大家,希望能夠幫助大家解決此類問題!
以下為正文:
vscode C/C++ Extension Pack 插件安裝
下載直接安裝 C/C++ Extension Pack 它包含了 vscode 編寫 C/C++ 工程需要的插件,和以前比不需要一個個找了。

vscode windows 端 debug 配置
windows 端編譯運行C/C++的程序需要一套集成開發(fā)環(huán)境,這里可以使用 MinGW https://nuwen.net/mingw.html ,選擇自己需要的安裝包安裝即可,我就直接用推薦的。

window MinGW 環(huán)境安裝
下載MinGW的安裝包,安裝即可(當然如果電腦上裝著 Visual Studio,也可以用它的工具集配置環(huán)境)。
配置MinGW的bin目錄到系統(tǒng)環(huán)境變量。

命令行g(shù)cc -v、g++ -v 驗證環(huán)境變量是否配置成功

windows 端 C、CPP 單文件 debug 調(diào)試
安裝好插件之后,先寫一個簡單的 cpp 文件
using namespace std;int main(){int number = 100;cout << "hello world" << number << endl;return 0;}
打個斷點,直接運行debug,可以讓編輯器自己去創(chuàng)建 lanch.json 和 task.json 配置文件

這里選擇C++(GDB/LLDB)、不要用C++(windows),debug運行的是 windows 自帶的 cmd

下一步 選擇 g++.exe 如下截圖;

記住不要用 C++(WIndows) 選項的話,會調(diào)用的是操作系統(tǒng)的cmd運行去運行程序,無法在vscode中正常debug,嘗試了一下,截圖如下。

注意生成的.vscode目錄,其中配置文件 lanch.js 中的 preLaunchTask 值,需要和 tasks.json 中 的任務名稱保持一致。對于不同的操作系統(tǒng)可能的其他環(huán)境,可以進行多任務配置。

C文件也可以調(diào)試。

我的windows端配置文件如下,大家可以參考。
// launch.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": "g++.exe - Build and debug active file","type": "cppdbg","request": "launch","program": "${fileDirname}\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "D:\MinGW\bin\gdb.exe","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "C/C++: g++.exe build active file"}]}// tasks.json{"tasks": [{"type": "cppbuild","label": "C/C++: g++.exe build active file","command": "D:\MinGW\bin\g++.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "Task generated by Debugger."}],"version": "2.0.0"}
代碼文件中文目錄文件名, 如何在 window 端正常調(diào)試
我是直接將 window 操作系統(tǒng)的編碼改成 UTF-8,測試有效,不過之前磁盤中的的一些不是UTF-8編碼的.txt 等文本文件,會有亂碼的情況。win10和win11系統(tǒng) UTF-8 的配置截圖如下。
win10

win11

重啟電腦后,就可以 debug 中文目錄的單文件了。

vscode ubuntu端 debug配置
我這里的系統(tǒng)是Ubuntu20.04 版本,類linux系統(tǒng)當中配置vscode debug相對來說比window端要簡單的多。
ubuntu C、CPP單文件調(diào)試
創(chuàng)建文件目錄,寫個簡單測試程序,點擊debug 按鈕,可以讓vscode 自己創(chuàng)建 launch.js 和 tasks.json
選擇 C++(GDB/LLDB),參考截圖如下

選擇 gcc - 生成和調(diào)試活動文件,參考截圖如下

成功進入斷點。

我的ubuntu端配置文件如下,大家可以參考。
// launch.js{// 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": "gcc - 生成和調(diào)試活動文件","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "gdb","setupCommands": [{"description": "為 gdb 啟用整齊打印","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "C/C++: gcc 生成活動文件","miDebuggerPath": "/usr/bin/gdb"}]}// tasks.js{"tasks": [{"type": "cppbuild","label": "C/C++: gcc 生成活動文件","command": "/usr/bin/gcc","args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}"],"options": {"cwd": "${workspaceFolder}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "調(diào)試器生成的任務。"}],"version": "2.0.0"}
中文目錄文件名, 在 ubuntu 端正常調(diào)試
在運行,Ubuntu調(diào)式中文目錄,中文文件是沒有問題的, locale 看一下當前系統(tǒng)的語言編碼設(shè)置,默認是 UTF-8。

如果不行,可以修改默認配置 sudo vi /etc/default/locale,系統(tǒng)語言是中文,LANG="zh_CN.UTF-8",系統(tǒng)語言是英文的,LANG=“en_US.UTF-8”
完成修改之后可以, source /etc/default/locale 更新配置。截圖如下


官方文檔參考
vscode官方文檔當中也有相關(guān)的配置,大家可以參考。https://code.visualstudio.com/docs/cpp/config-mingw

希望能夠幫到大家!
寫在最后:對于準備學習C/C++編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開始!
整理分享(多年學習的源碼、項目實戰(zhàn)視頻、項目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
原文標題:環(huán)境配置:Visual Studio Code 配置C/C++文件debug調(diào)試環(huán)境
文章出處:【微信公眾號:C語言編程學習基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
審核編輯:湯梓紅
-
調(diào)試
+關(guān)注
關(guān)注
7文章
623瀏覽量
35398 -
C語言
+關(guān)注
關(guān)注
183文章
7642瀏覽量
144701 -
編譯器
+關(guān)注
關(guān)注
1文章
1670瀏覽量
51116
原文標題:環(huán)境配置:Visual Studio Code 配置C/C++文件debug調(diào)試環(huán)境
文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學習基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
SEGGER編譯器優(yōu)化和安全技術(shù)介紹 支持最新C和C++語言
C++編譯器數(shù)值性能比較
Linux下C/C++編譯器gcc使用指南
MATLAB 64位C語言和C++編譯器應用程序免費下載
阿里云基礎(chǔ)軟件C/C++編譯器的工作現(xiàn)狀及挑戰(zhàn)
C/C++編譯器的缺省字節(jié)對齊方式
RX系列V3.06.00的C/C++編譯器包數(shù)據(jù)手冊
TMS320C6000優(yōu)化C/C++編譯器v8.3.x
ARM優(yōu)化C/C++編譯器 v20.2.0.LTS
MSP430優(yōu)化C/C++編譯器v21.6.0.LTS

VScode編譯器如何配置C/C++編譯環(huán)境
評論