RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

C語(yǔ)言編程學(xué)習(xí)基地 ? 來(lái)源:C語(yǔ)言編程學(xué)習(xí)基地 ? 作者:C語(yǔ)言編程學(xué)習(xí)基地 ? 2022-03-16 08:38 ? 次閱讀

昨天有伙伴私信我,為什么我用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è)找了。

1525b000-9884-11ec-952b-dac502259ad0.png

vscode windows 端 debug 配置

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

1536276e-9884-11ec-952b-dac502259ad0.png

window MinGW 環(huán)境安裝

下載MinGW的安裝包,安裝即可(當(dāng)然如果電腦上裝著 Visual Studio,也可以用它的工具集配置環(huán)境)。

配置MinGW的bin目錄到系統(tǒng)環(huán)境變量。

154afcc0-9884-11ec-952b-dac502259ad0.png

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

156043fa-9884-11ec-952b-dac502259ad0.png

windows 端 C、CPP 單文件 debug 調(diào)試

安裝好插件之后,先寫(xiě)一個(gè)簡(jiǎn)單的 cpp 文件

#include 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 配置文件

1577469a-9884-11ec-952b-dac502259ad0.png

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

158586ce-9884-11ec-952b-dac502259ad0.png

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

159d11f4-9884-11ec-952b-dac502259ad0.png

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

15b55138-9884-11ec-952b-dac502259ad0.png

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

15c96466-9884-11ec-952b-dac502259ad0.png

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

15dbc430-9884-11ec-952b-dac502259ad0.png

我的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

15f0ca9c-9884-11ec-952b-dac502259ad0.png

win11

15fd03f2-9884-11ec-952b-dac502259ad0.png

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

1614bef2-9884-11ec-952b-dac502259ad0.png

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),參考截圖如下

16289404-9884-11ec-952b-dac502259ad0.png

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

163c435a-9884-11ec-952b-dac502259ad0.png

成功進(jìn)入斷點(diǎn)。

1651b014-9884-11ec-952b-dac502259ad0.png

我的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。

16655d80-9884-11ec-952b-dac502259ad0.png

如果不行,可以修改默認(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 更新配置。截圖如下

1677ea0e-9884-11ec-952b-dac502259ad0.png

168f36aa-9884-11ec-952b-dac502259ad0.png

官方文檔參考

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

16a0de64-9884-11ec-952b-dac502259ad0.png

希望能夠幫到大家!

寫(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)注明出處。
審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 調(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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SEGGER編譯器優(yōu)化和安全技術(shù)介紹 支持最新CC++語(yǔ)言

    SEGGER編譯器是專(zhuān)門(mén)為ARM和RISC-V微控制設(shè)計(jì)的優(yōu)化C/C++編譯器。它建立在強(qiáng)大的Clang前端上,支持最新的
    的頭像 發(fā)表于 06-04 15:31 ?1443次閱讀
    SEGGER<b class='flag-5'>編譯器</b>優(yōu)化和安全技術(shù)介紹 支持最新<b class='flag-5'>C</b>和<b class='flag-5'>C++</b>語(yǔ)言

    Linux下C/C++編譯器gcc使用指南

    1.gcc包含的c/c++編譯器 gcc,cc與c++,g++ gcc和cc是一樣的,c++和g++是一樣的。一般
    發(fā)表于 11-02 10:59 ?0次下載

    主流C語(yǔ)言編譯器的詳細(xì)資料介紹

    對(duì)于當(dāng)前主流桌面操作系統(tǒng)而言,可使用Visual C++、GCC以及LLVM Clang這三大編譯器。其中,Visual C++(簡(jiǎn)稱 MSVC)只能用于Windows操作系統(tǒng);其余兩個(gè),除了可用
    發(fā)表于 05-22 18:00 ?1次下載
    主流<b class='flag-5'>C</b>語(yǔ)言<b class='flag-5'>編譯器</b>的詳細(xì)資料介紹

    MATLAB 64位C語(yǔ)言和C++編譯器應(yīng)用程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是MATLAB 64位C語(yǔ)言和C++編譯器應(yīng)用程序免費(fèi)下載。
    發(fā)表于 05-21 08:00 ?4次下載
    MATLAB 64位<b class='flag-5'>C</b>語(yǔ)言和<b class='flag-5'>C++</b><b class='flag-5'>編譯器</b>應(yīng)用程序免費(fèi)下載

    既然C編譯器C語(yǔ)言寫(xiě),那么第一個(gè)C編譯器是怎樣來(lái)的?

    既然C編譯器C語(yǔ)言寫(xiě)的,那第一個(gè)C編譯器是怎樣來(lái)的?
    的頭像 發(fā)表于 02-25 15:47 ?3179次閱讀

    阿里云基礎(chǔ)軟件C/C++編譯器的工作現(xiàn)狀及挑戰(zhàn)

    本文主要詳細(xì)介紹了阿里云C、C++編譯器(GCC、LLVM)工作現(xiàn)狀、主流編譯器(GCC、LLVM)開(kāi)源社區(qū)參與現(xiàn)狀以及多架構(gòu)(RISC-V)對(duì)數(shù)據(jù)中心的挑戰(zhàn)。
    的頭像 發(fā)表于 06-23 15:26 ?2960次閱讀
    阿里云基礎(chǔ)軟件<b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>編譯器</b>的工作現(xiàn)狀及挑戰(zhàn)

    SuperH C/C++ 編譯器包 V.9.04 用戶手冊(cè)

    SuperH C/C++ 編譯器包 V.9.04 用戶手冊(cè)
    發(fā)表于 01-12 18:45 ?1次下載
    SuperH <b class='flag-5'>C</b>/<b class='flag-5'>C++</b> <b class='flag-5'>編譯器</b>包 V.9.04 用戶手冊(cè)

    C/C++編譯器的缺省字節(jié)對(duì)齊方式

    C/C++編譯器的缺省字節(jié)對(duì)齊方式為自然對(duì)界。即在缺省情況下,編譯器為每一個(gè)變量或是數(shù)據(jù)單元按其自然對(duì)界條件分配空間。
    的頭像 發(fā)表于 04-15 11:24 ?1004次閱讀

    SuperH C/C++ 編譯器包 V.9.01 用戶手冊(cè)

    SuperH C/C++ 編譯器包 V.9.01 用戶手冊(cè)
    發(fā)表于 04-21 19:55 ?0次下載
    SuperH <b class='flag-5'>C</b>/<b class='flag-5'>C++</b> <b class='flag-5'>編譯器</b>包 V.9.01 用戶手冊(cè)

    SuperH C/C++ 編譯器包 V.9.04 用戶手冊(cè)

    SuperH C/C++ 編譯器包 V.9.04 用戶手冊(cè)
    發(fā)表于 07-03 18:38 ?4次下載
    SuperH <b class='flag-5'>C</b>/<b class='flag-5'>C++</b> <b class='flag-5'>編譯器</b>包 V.9.04 用戶手冊(cè)

    RX系列V3.06.00的C/C++編譯器包數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《RX系列V3.06.00的C/C++編譯器包數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 01-26 15:57 ?1次下載
    RX系列V3.06.00的<b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>編譯器</b>包數(shù)據(jù)手冊(cè)

    C7000優(yōu)化C/C++編譯器

    電子發(fā)燒友網(wǎng)站提供《C7000優(yōu)化C/C++編譯器.pdf》資料免費(fèi)下載
    發(fā)表于 10-30 09:45 ?0次下載
    <b class='flag-5'>C</b>7000優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>編譯器</b>

    TMS320C6000優(yōu)化C/C++編譯器v8.3.x

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000優(yōu)化C/C++編譯器v8.3.x.pdf》資料免費(fèi)下載
    發(fā)表于 11-01 09:35 ?0次下載
    TMS320<b class='flag-5'>C</b>6000優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>編譯器</b>v8.3.x

    ARM優(yōu)化C/C++編譯器 v20.2.0.LTS

    電子發(fā)燒友網(wǎng)站提供《ARM優(yōu)化C/C++編譯器 v20.2.0.LTS.pdf》資料免費(fèi)下載
    發(fā)表于 11-07 10:46 ?0次下載
    ARM優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>編譯器</b> v20.2.0.LTS

    MSP430優(yōu)化C/C++編譯器v21.6.0.LTS

    電子發(fā)燒友網(wǎng)站提供《MSP430優(yōu)化C/C++編譯器v21.6.0.LTS.pdf》資料免費(fèi)下載
    發(fā)表于 11-08 14:57 ?0次下載
    MSP430優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>編譯器</b>v21.6.0.LTS
    RM新时代网站-首页