昨天有伙伴私信我,為什么我用C語(yǔ)言寫(xiě)的hello world幾行代碼,在編譯器里面報(bào)錯(cuò)了呢?
然后我讓她截個(gè)圖發(fā)我,卻發(fā)現(xiàn)是她的VScode編譯器沒(méi)有配置好C/C++的編譯環(huán)境,于是我給她解決完問(wèn)題后,又想著可能還是有其他伙伴會(huì)遇到類(lèi)似的問(wèn)題,于是搜索一番之后將這篇我認(rèn)為最細(xì)致的一篇文章轉(zhuǎn)載分享給大家,希望能夠幫助大家解決此類(lèi)問(wèn)題!
以下為正文:
vscode C/C++ Extension Pack 插件安裝
下載直接安裝 C/C++ Extension Pack 它包含了 vscode 編寫(xiě) C/C++ 工程需要的插件,和以前比不需要一個(gè)個(gè)找了。
vscode windows 端 debug 配置
windows 端編譯運(yùn)行C/C++的程序需要一套集成開(kāi)發(fā)環(huán)境,這里可以使用 MinGW https://nuwen.net/mingw.html ,選擇自己需要的安裝包安裝即可,我就直接用推薦的。
window MinGW 環(huán)境安裝
下載MinGW的安裝包,安裝即可(當(dāng)然如果電腦上裝著 Visual Studio,也可以用它的工具集配置環(huán)境)。
配置MinGW的bin目錄到系統(tǒng)環(huán)境變量。
命令行g(shù)cc -v、g++ -v 驗(yàn)證環(huán)境變量是否配置成功
windows 端 C、CPP 單文件 debug 調(diào)試
安裝好插件之后,先寫(xiě)一個(gè)簡(jiǎn)單的 cpp 文件
using namespace std;
int main()
{
int number = 100;
cout << "hello world" << number << endl;
return 0;
}
打個(gè)斷點(diǎn),直接運(yùn)行debug,可以讓編輯器自己去創(chuàng)建 lanch.json 和 task.json 配置文件
這里選擇C++(GDB/LLDB)、不要用C++(windows),debug運(yùn)行的是 windows 自帶的 cmd
下一步 選擇 g++.exe 如下截圖;
記住不要用 C++(WIndows) 選項(xiàng)的話,會(huì)調(diào)用的是操作系統(tǒng)的cmd運(yùn)行去運(yùn)行程序,無(wú)法在vscode中正常debug,嘗試了一下,截圖如下。
注意生成的.vscode目錄,其中配置文件 lanch.js 中的 preLaunchTask 值,需要和 tasks.json 中 的任務(wù)名稱保持一致。對(duì)于不同的操作系統(tǒng)可能的其他環(huán)境,可以進(jìn)行多任務(wù)配置。
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,測(cè)試有效,不過(guò)之前磁盤(pán)中的的一些不是UTF-8編碼的.txt 等文本文件,會(huì)有亂碼的情況。win10和win11系統(tǒng) UTF-8 的配置截圖如下。
win10
win11
重啟電腦后,就可以 debug 中文目錄的單文件了。
vscode ubuntu端 debug配置
我這里的系統(tǒng)是Ubuntu20.04 版本,類(lèi)linux系統(tǒng)當(dāng)中配置vscode debug相對(duì)來(lái)說(shuō)比window端要簡(jiǎn)單的多。
ubuntu C、CPP單文件調(diào)試
創(chuàng)建文件目錄,寫(xiě)個(gè)簡(jiǎn)單測(cè)試程序,點(diǎn)擊debug 按鈕,可以讓vscode 自己創(chuàng)建 launch.js 和 tasks.json
選擇 C++(GDB/LLDB),參考截圖如下
選擇 gcc - 生成和調(diào)試活動(dòng)文件,參考截圖如下
成功進(jìn)入斷點(diǎn)。
我的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)試活動(dòng)文件",
"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 生成活動(dòng)文件",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
// tasks.js
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc 生成活動(dòng)文件",
"command": "/usr/bin/gcc",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "調(diào)試器生成的任務(wù)。"
}
],
"version": "2.0.0"
}
中文目錄文件名, 在 ubuntu 端正常調(diào)試
在運(yùn)行,Ubuntu調(diào)式中文目錄,中文文件是沒(méi)有問(wèn)題的, locale 看一下當(dāng)前系統(tǒng)的語(yǔ)言編碼設(shè)置,默認(rèn)是 UTF-8。
如果不行,可以修改默認(rèn)配置 sudo vi /etc/default/locale,系統(tǒng)語(yǔ)言是中文,LANG="zh_CN.UTF-8",系統(tǒng)語(yǔ)言是英文的,LANG=“en_US.UTF-8”
完成修改之后可以, source /etc/default/locale 更新配置。截圖如下
官方文檔參考
vscode官方文檔當(dāng)中也有相關(guān)的配置,大家可以參考。https://code.visualstudio.com/docs/cpp/config-mingw
希望能夠幫到大家!
寫(xiě)在最后:對(duì)于準(zhǔn)備學(xué)習(xí)C/C++編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開(kāi)始!
整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門(mén)教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
原文標(biāo)題:環(huán)境配置:Visual Studio Code 配置C/C++文件debug調(diào)試環(huán)境
文章出處:【微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
審核編輯:湯梓紅
-
調(diào)試
+關(guān)注
關(guān)注
7文章
578瀏覽量
33923 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136683 -
編譯器
+關(guān)注
關(guān)注
1文章
1623瀏覽量
49108
原文標(biāo)題:環(huán)境配置:Visual Studio Code 配置C/C++文件debug調(diào)試環(huán)境
文章出處:【微信號(hào):cyuyanxuexi,微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論