C/C++入門之搭建開發環境(VScode篇)

本文主要記錄 Visual Studio Code 中配置 C/C++ 的開發環境,包括項目設置、編譯選項和調試配置。VScode是編輯器,我們還需要安裝編譯器,才能實現編寫程序到生成可執行文件這一流程。關于編輯器,編譯器和IDE如果有些分不清,可以看這篇 編輯器,編譯器和IDE的梳理

在VS Code中配置C++開發環境需要完成編譯器安裝擴展配置調試環境設置三個核心步驟。具體記錄如下:

一、前置準備

  1. 安裝VS Code
    從VS Code官網下載對應系統版本(Windows/macOS/Linux),按向導完成安裝即可。

    • 只要操作系統對應上,就沒啥大問題。如果電腦是自己一直用一個賬戶(PIN登錄解鎖)用的,那么User InstallerSystem Installer 安裝哪個沒什么大的差別,用戶版安裝目錄和配置都會生成在用戶目錄下,系統版則是在系統的目錄下。
    • 此外, 安裝過程中出現下面這個界面,這里進行了紅字標注做出了說明。全勾選基本沒什么副作用,如果有主用的編輯器(比如Notepad++什么的),倒數第二個可以不用勾選,這個選項的作用就是對某些文件默認打開方式的意思,基本上也就是js,html這些文本文件。
      在這里插入圖片描述
  2. 安裝C++擴展

    • 如果不習慣英文,可以在擴展里安裝微軟官方的中文包插件,重新打開VScode生效。
    • 打開VS Code → 左側導航欄點擊「擴展」(或按Ctrl+Shift+X打開擴展商店)→ 搜索「C/C++」→ 安裝微軟官方的 [C/C++]。
      可選裝「C/C++ Extension Pack」(這個是包含調試、格式化等工具)。
    • 選擇圖中帶有Microsoft認證標識的就對了,官方的,也是最多人選的。
    • C/C++的擴展僅僅是方便配置編譯器目錄以及相關的編譯命令的,使用VScode編譯運行指令下,能識別到系統上安裝的編譯器。

二、安裝編譯器(關鍵步驟)

VS Code本身不自帶編譯器,即便是安裝C/C++擴展,也不會自動下載編譯器,我們需根據系統安裝對應的編譯器和工具鏈。
基本上市面主流的編譯器也就三種:GCC/G++,Clang/Clang++,以及MSVC。
如果之前安裝過其他 IDE或者編譯器,比如 Devcpp,codeblocks等,電腦已有的編譯器實際上也可以使用,無需安裝,但是即便安裝了也不會讓電腦爆炸,占空間也不是很大,所以也可以安裝,后期不需要卸載即可。
更多捆綁文章可選擇了解:C/C++的編譯器

1. Windows系統(推薦MinGW-w64)

MinGW-w64 是 GCC/G++編譯器,附帶上 C/C++ 標準庫(如 stdio.h、iostream 對應的實現)、鏈接器(ld)、調試工具(gdb)等,對Windows作出了適配。
換句話說,在windows系統上,想使用GCC/G++編譯器,安裝我就對了,除了編譯功能,在windows運行需要的額外的工作,我都安排好了。

  • 下載MinGW-w64
    訪問MinGW-w64官網,選擇「Downloads」→ 推薦通過SourceForge鏡像下載,選擇適合的版本(如x86_64-posix-seh,64位系統推薦)。
  • 安裝與配置系統環境變量
    配置系統環境變量并非必選項,在VScode中會需要配置,這里配置了只是有利于電腦的程序“識別”,會比較方便用。
    • 安裝時推薦選擇「Add to PATH」(或手動添加),安裝路徑建議無空格(如C:\mingw64)。

    • 如果安裝是沒有選擇添加到 PATH,手動打開環境變量,在path下添加路徑,見下文 補充:系統環境變量

    • 驗證:按Win+R輸入cmd,執行g++ --versiongcc --version,若顯示版本信息則安裝成功。

如果在windows想既使用GCC/G++,又想試試Clang/Clang++的,可以參考<留個眼,以后補充>。
至于MSVC,下載安裝Visual Studio(紫色圖標,另一個軟件)一般默認自帶的。

2. macOS系統(使用Clang)
  • 打開終端,執行命令安裝Xcode命令行工具:
    xcode-select --install
    
  • 驗證:終端輸入clang --version,顯示版本信息即成功。
3. Linux系統(使用GCC)
  • 終端執行以下命令安裝GCC工具鏈(以Ubuntu為例):
    sudo apt update
    sudo apt install build-essential gdb
    
  • 驗證:輸入gcc --versiongdb --version,顯示版本信息即成功。

三、創建并配置項目

這一段主要流程是創建文件夾,文件夾里新建C文件,C++文件,寫一段測試的代碼。
代碼寫完了,需要配置VScode,讓他能夠找到編譯器路徑,使源代碼能被編譯生成可執行文件。

VScode的配置一般都是通過修改json文件實現的,當然也有界面里用鼠標點擊選擇之類的界面操作。前者只針對某個項目文件夾的配置,后者則是全局設置,相當于VScode打開文件夾都默認的配置。若某個項目有json文件配置,則VScode優先使用json的設置,否則使用全局配置。
這里介紹的是使用json文件的配置,只適用于當前項目文件夾,下次打開其他項目文件夾,此json配置不會湊效,但是可以考慮修改拷貝過去使用。配置文件的好處是到另一個電腦上,微改配置文件就能用了。
配置一般會涉及到兩個文件task.jsonlaunch.json。前者是k代碼編譯需要的配置,后者是調試需要的配置。

  1. 創建項目文件夾
    新建一個空文件夾,名字無所謂(如cpp-demo),用 VS Code打開(「文件」→「打開文件夾」)。雖然名字無所謂,但還是建議,以后編程時 養成使用英文命名項目中文件夾和文件名的好習慣。

  2. 創建測試代碼
    在文件夾中新建hello.c文件,hello是文件名,c是文件后綴名,表明這是c類型的文件。
    在這里插入圖片描述

    輸入基礎代碼,先不管它什么意思:

    #include <stdio.h>
    int main(){printf("Hello World");getchar();return 0;
    }
    
  3. 配置編譯任務(tasks.json)
    編譯任務用于告訴 VS Code 如何調用 g++ 編譯代碼,用于定義編譯命令:

    • Ctrl+Shift+P打開命令面板,輸入「Tasks: Configure Default Build Task」→ 選擇「C/C++: g++ 生成活動文件」(Windows)或「C/C++: clang++ 生成活動文件」(macOS/Linux)。
      彈窗會有提示你的編譯器路徑,選擇剛才安裝的編譯器路徑即可(或者電腦已有的編譯器路徑),此處的選擇會自動把下面的 “command” 填好。
    • 上一步選擇好之后,會自動生成.vscode/tasks.json,默認配置如下(可根據需要修改):
      其中,"label"是自動生成的,編譯時顯示的任務名,可自行修改,后面配置launch也會要用到。
      "command"是必填項,配置編譯器路徑,上一步會自動生成,可自行檢查路徑是否正確。如果想換編譯器,在這里改即可。
      "args"最后一個參數是生成可執行文件exe,一般為同名exe文件。可鼠標懸停查看具體釋義。
      {"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: gcc.exe 生成活動文件",    // 任務名稱,調試配置在 launch.json文件,需匹配"command": "C:\\msys64\\ucrt64\\bin\\gcc.exe",  // 編譯器路徑(Windows為mingw64的g++.exe路徑,識別成功會自動寫好,否則自己改"args": [ // 編譯參數"-fdiagnostics-color=always","-g", // 生成調試信息"${file}", // 當前活動文件"-o", // 輸出文件名"${fileDirname}\\${fileBasenameNoExtension}.exe" // 輸出路徑(與源文件同目錄)],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true  //默認編譯器的意思},"detail": "編譯器: C:\\msys64\\ucrt64\\bin\\gcc.exe"}]
      }	
      
  4. 配置調試環境(launch.json)
    調試配置用于告訴 VS Code 如何調用 gdb 進行調試,用于設置調試參數:

    • 點擊左側「運行和調試」(或按Ctrl+Shift+D)→ 點擊「創建launch.json文件」→ 選擇「C++ (GDB/LLDB)」→ 選擇對應編譯器(如g++)。
    • 自動生成.vscode/launch.json,關鍵配置如下:
      其中,"program"就是之前生成的exe路徑, 需要替換一致。
      "preLaunchTask"一定要放在"miDebuggerPath"之前,意思是調試程序之前編譯。與task.json中的label要一致,拷貝過來即可。
      “miDebuggerPath” 設置的是調試器的路徑,一般與編譯器同文件夾,文件名為gdb.exe。自行檢查是否存在且路徑正確。
      {"version": "0.2.0","configurations": [{"name": "(gdb) 啟動","type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe",  //待調試的程序路徑。是需要自己改的,換成task.json中的輸出路徑即可。"args": [],"stopAtEntry": false,    // 是否在main函數處斷點(暫停)"cwd": "${fileDirname}","environment": [],"externalConsole": false, // 是否使用外部控制臺,這里在VScode終端,true則是用黑框"MIMode": "gdb","preLaunchTask": "C/C++: g++ 生成活動文件", // 必須項。調試前執行的任務(需與tasks.json的label一致)"miDebuggerPath": "C:\\msys64\\ucrt64\\bin\\gdb.exe",  // 調試器路徑(Windows為mingw64的gdb.exe路徑,一般與gcc.exe同目錄)"setupCommands": [{"description": "為 gdb 啟用整齊打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "將反匯編風格設置為 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}]}]
      }
      

四、測試配置

  1. 編譯運行
    編譯:
    打開hello.cpp,按Ctrl+Shift+B執行編譯任務,成功后,這里的配置會在同目錄生成hello.exe
    運行:
    方法 1(僅運行):在 VS Code 終端中輸入 .\hello.exe 執行。
    方法 2(調試運行):按下 F5 啟動調試,可設置斷點、單步執行等(調試控制臺會顯示輸出)。

  2. 調試代碼
    在代碼中設置斷點(點擊行號左側會設置紅點),按F5啟動調試,可使用「繼續(F5)」「單步跳過(F10)」「單步調試(F11)」等功能。

運行結果為 Hello World


五、常見問題解決 FAQ

  1. “找不到gcc/clang”

    1. 檢查編譯器是否安裝,找到mingw的安裝目錄,看看是否有gcc。exe這個程序。
    2. VScode中的task配置文件路徑是否對應上。
      如果是使用全局設置,在設置中,找到C/C++擴展的環境(編譯器)路徑是否對應。
  2. 中文亂碼
    tasks.jsonargs中添加-fexec-charset=GBK(Windows)或-fexec-charset=UTF-8(跨平臺)。

  3. 調試時無法命中斷點:
    確保 tasks.json 中包含 -g 選項(生成調試信息),且 launch.jsonpreLaunchTask 與編譯任務的 label 一致。

  4. 不是內部或外部的命令
    在終端或者命令行,輸入程序(exe)名未被識別到才會提示這段反饋。
    設置過系統環境變量情形:在任意一個命令行中輸入,都是會檢測識別到的,檢查環境變量是否設置正確,以及命令是否輸錯了。
    沒有配置環境變量情形:需要在終端/命令行,進入相對應的exe文件所在目錄,再輸入程序名。

  5. 右下角總是彈窗:

    “‘cl’ 不是內部或外部命令,也不是可運行的程序或批處理文件。”
    “cl.exe” build and debug is only usable when VS Code is run from the Developer Command Prompt for VS. 的問題。

    這是因為你配置的編譯器使用的是cl.exe,這是MSVC 編譯器,你的電腦大概率安裝了Visual Studio,并且沒有添加到系統環境變量。
    微軟的 cl.exe(MSVC 編譯器)依賴一系列特殊的環境變量(如編譯器路徑、庫路徑、頭文件路徑等),這些變量只有在 “VS 開發者命令提示符” 中才會被自動加載。
    直接雙擊啟動 VS Code 時,它繼承的是系統默認環境變量,會缺少這些關鍵配置,因此無法正常使用 cl.exe 進行編譯和調試。
    解決方案一: 從Deveioper Command Prompt for ***打開VScode。開始菜單找到類似圖中的程序,或者直接使用win+s 搜這個名字,可能會因版本不同最后的名字不一樣。啟動之后,會發現這個程序就是一個黑框終端,在終端輸入code回車即可打開VScode(前提是VScode添加到PATH),現在打開的就不會報錯。
    在這里插入圖片描述
    解決方案二: 將編譯器路徑改成其他路徑編譯器,不使用MSVC編譯器。

補充:系統環境變量

  1. 打開系統屬性。快捷鍵win+r喚出運行,輸入sysdm.cpl ,打開系統屬性。全稱大概是(system data manager . Control Panel extension)
  2. 在高級中,找到環境變量。
    在這里插入圖片描述
  3. 在用戶變量和系統變量中,各自有一個path。實際運行時,系統會先找到用戶變量中的內容,找不到再去找系統變量中的path,所以這兩者隨便選一個添加即可。建議安裝在用戶下的程序添加用戶變量,管理員權限的添加在系統變量下。
  4. 雙擊path,會跳出編輯的彈窗,新建即可添加程序的路徑。
    建議使用瀏覽尋找,找到exe所在目錄即可。比如如果手動配置GCC編譯器,找到gcc.exe,一般就是bin目錄。
    也可以直接編輯,粘貼程序的目錄。但是要注意不能拼錯。
    在這里插入圖片描述

總結

核心步驟是:配置 MinGW 環境變量 → 安裝 C/C++ 擴展 → 生成并修改 tasks.json(編譯)和 launch.json(調試)。通過這種配置,VS Code 能直接調用 GCC 工具鏈,實現 C 代碼的編譯、運行和調試,此外,C++代碼的配置與之類似,只不過編譯器為g++.exe

參考:
我寫的很亂,這個博主很詳細:VS Code 配置 C/C++ 編程運行環境(保姆級教程)
https://blog.csdn.net/qq_43328313/article/details/138898223
https://blog.csdn.net/Natsuago/article/details/145507915

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/96003.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/96003.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/96003.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【營銷策略算法】關聯規則學習-購物籃分析

Apriori算法是關聯規則學習領域中最經典、最著名的算法之一&#xff0c;用于從大規模數據集中發現有價值的關聯規則。最典型的例子就是購物籃分析&#xff0c;通過分析顧客的購物籃&#xff0c;發現商品之間的關聯關系&#xff0c;從而制定營銷策略&#xff08;如“買尿布的顧客…

行為式驗證碼技術解析:滑塊拼圖、語序選詞與智能無感知

隨著傳統字符驗證碼逐漸被 OCR 與自動化腳本攻破&#xff0c;越來越多業務開始采用 行為式驗證碼 來區分真人與機器。這類驗證碼不僅依賴用戶的操作行為&#xff0c;還結合圖形干擾、環境信息和風控模型&#xff0c;既提升了安全性&#xff0c;也改善了用戶體驗。 常見的實現方…

基于多項式同態加密和秘密共享的JPEG可逆信息隱藏

學習題為《Reversible steganography in cipher domain for JPEG images using polynomial homomorphism》的論文隨著物聯網&#xff08;IoT&#xff09;設備的普及&#xff0c;大量敏感數據&#xff08;如指紋、身份信息&#xff09;需要在云端傳輸和存儲。傳統隱寫技術雖然能…

從 0 到 1 攻克訂單表分表分庫:億級流量下的數據庫架構實戰指南

引言&#xff1a; 本文總字數&#xff1a;約 8500 字建議閱讀時間&#xff1a;35 分鐘 當訂單表撐爆數據庫&#xff0c;我們該怎么辦&#xff1f; 想象一下&#xff0c;你負責的電商平臺在經歷了幾個雙十一后&#xff0c;訂單系統開始頻繁出現問題&#xff1a;數據庫查詢越來…

網絡編程(5)Modbus

【1】Modbus 1. 起源Modbus由Modicon公司于1979年開發&#xff0c;是全球第一個真正用于工業現場的總線協議在中國&#xff0c;Modbus 已經成為國家標準&#xff0c;并有專業的規范文檔&#xff0c;感興趣的可以去查閱相關的文件&#xff0c;詳情如下&#xff1a;標準編號為:GB…

WordPress性能優化全攻略:從插件實戰到系統級優化

一、性能診斷&#xff1a;定位瓶頸是優化第一步 在對 WordPress 進行性能優化前&#xff0c;精準定位性能瓶頸至關重要。這就好比醫生看病&#xff0c;只有先準確診斷&#xff0c;才能對癥下藥。下面將從核心性能指標檢測工具和服務器基礎性能排查兩個方面展開。 1.1 核心性能…

十、網絡與信息安全基礎知識

1 網絡概述 1.1 計算機網絡的概念 1.1.1 計算機網絡的發展 計算機網絡的發展經歷了四個主要階段&#xff1a; 具有通信功能的單機系統&#xff1a; 早期形式&#xff1a;一臺計算機連接多個終端。例子&#xff1a;20 世紀 50 年代的 SAGE 系統。 具有通信功能的多機系統&#x…

校園管理系統|基于SpringBoot和Vue的校園管理系統(源碼+數據庫+文檔)

項目介紹 : SpringbootMavenMybatis PlusVue Element UIMysql 開發的前后端分離的校園管理系統&#xff0c;項目分為管理端和用戶端和院校管理員端 項目演示: 基于SpringBoot和Vue的校園管理系統 運行環境: 最好是java jdk 1.8&#xff0c;我們在這個平臺上運行的。其他版本理…

新后端漏洞(上)- Weblogic SSRF漏洞

漏洞介紹&#xff1a;Weblogic中存在一個SSRF漏洞&#xff0c;利用該漏洞可以發送任意HTTP請求&#xff0c;進而攻擊內網中redis、fastcgi等脆弱組件。編譯及啟動測試環境docker-compose up -d訪問http://127.0.0.1:7001/uddiexplorer/&#xff0c;無需登錄即可查看uddiexplore…

Fiddler 實戰案例解析,開發者如何用抓包工具快速解決問題

在現代軟件開發中&#xff0c;網絡通信問題幾乎是最常見的 Bug 來源。無論是前端調用后端 API、移動端與服務端交互&#xff0c;還是第三方 SDK 請求&#xff0c;都會因為參數錯誤、環境差異、網絡條件不穩定而出現各種難以復現的問題。 在這些場景下&#xff0c;日志往往并不…

【佳易王藥品進銷存軟件實測】:操作簡單 + 全流程管理,醫藥臺賬管理好幫手#軟件教程全解析

前言&#xff1a; &#xff08;一&#xff09;試用版獲取方式 資源下載路徑&#xff1a;進入博主頭像主頁第一篇文章末尾&#xff0c;點擊卡片按鈕&#xff1b;或訪問左上角博客主頁&#xff0c;通過右側按鈕獲取詳細資料。 說明&#xff1a;下載文件為壓縮包&#xff0c;使用…

【設計模式】UML 基礎教程總結(軟件設計師考試重點)

【設計模式】UML 基礎教程總結(軟件設計師考試重點) 統一建模語言(Unified Modeling Language,UML),是一種標準化的面向對象建模語言,用于可視化、規范化和文檔化軟件系統設計。 參考資料:UML基礎教程資料(可用于軟件設計師考試)! (關注不迷路哈!!!) 文章目錄 【…

vite_react 插件 find_code 最終版本

vite_react 插件 find_code 最終版本當初在開發一個大型項目的時候&#xff0c;第一次接觸 vite 構建&#xff0c;由于系統功能很龐大&#xff0c;在問題排查上和模塊開發上比較耗時&#xff0c;然后就開始找解決方案&#xff0c;find-code 插件方案就這樣實現出來了&#xff0…

Python+DRVT 從外部調用 Revit:批量創建梁(2)

接著昨天的示例&#xff0c;繼續創建梁&#xff0c;這次展示以橢圓弧、Nurbs為軸線。 創建以橢圓弧為軸線的梁 橢圓弧曲線的創建&#xff1a; # 創建橢圓弧 def CreateEllipse(ctx : MyContext, z: float) -> DB.Curve:"""create a horizontal partial el…

Flutter × 鴻蒙系統:一文搞懂如何將你的 App 移植到 HarmonyOS!

摘要 Flutter 是一個高效的跨平臺框架&#xff0c;開發者可以使用同一套代碼快速部署到 Android、iOS 等主流平臺。隨著華為鴻蒙系統&#xff08;HarmonyOS&#xff09;的崛起&#xff0c;越來越多開發者希望能將已有的 Flutter 應用遷移到鴻蒙生態中運行。目前&#xff0c;通過…

QML Charts組件之主題與動畫

目錄前言相關系列ChartView 概述&#xff1a;主題與動畫示例一&#xff1a;主題設置&#xff08;ChartTheme.qml&#xff09;圖表與主題設置主題切換部分示例二&#xff1a;動畫設置&#xff08;ChartAnimation.qml&#xff09;圖表與動畫屬性部分分類軸與柱狀圖數據部分交互與…

【論文閱讀】Security of Language Models for Code: A Systematic Literature Review

Security of Language Models for Code: A Systematic Literature Review 該論文于2025年被CCF A類期刊TOSEM收錄&#xff0c;作者來自南京大學和南洋理工大學。 概述 代碼語言模型&#xff08;CodeLMs&#xff09;已成為代碼相關任務的強大工具&#xff0c;其性能優于傳統方法…

[光學原理與應用-422]:非線性光學 - 計算機中的線性與非線性運算

在計算機科學中&#xff0c;線性運算和非線性運算是兩類核心的數學操作&#xff0c;它們在算法設計、數據處理、機器學習等領域有廣泛應用。兩者的核心區別在于是否滿足疊加原理&#xff08;即輸入信號的線性組合的輸出是否等于輸出信號的線性組合&#xff09;。以下是詳細解釋…

Day21_【機器學習—決策樹(3)—剪枝】

決策樹剪枝是一種防止決策樹過擬合的一種正則化方法&#xff1b;提高其泛化能力。決策樹在訓練過程中如果生長過深、過于復雜&#xff0c;會過度擬合訓練數據中的噪聲和異常值&#xff0c;導致在新數據上表現不佳。剪枝通過簡化樹結構&#xff0c;去除不必要的分支&#xff0c;…

從零構建企業級LLMOps平臺:LMForge——支持多模型、可視化編排、知識庫與安全審核的全棧解決方案

&#x1f680; 從零構建企業級LLMOps平臺&#xff1a;LMForge——支持多模型、可視化編排、知識庫與安全審核的全棧解決方案 &#x1f517; 項目地址&#xff1a;https://github.com/Haohao-end/LMForge-End-to-End-LLMOps-Platform-for-Multi-Model-Agents ? 歡迎 Star &…