VsCode 配置 C/C++ 開發環境

簡述一下步驟哈:

  1. 下載VsCode(這點大家都會哈)
  2. 下載MingG64(C/C++編譯器【gcc】),配置環境變量
  3. 在VsCode配置一下C/C++運行時環境
  4. 測試運行

1、準備MingG64

VsCode 本身是沒有C/C++編譯的,這里我們自己去下載一個MingG64 就可以了。

下載地址頁面:MingG64

在這個頁面選擇你想要的MingG64版本進行下載,能玩新的就玩新的哈,不然沒勁哈。

我們選擇的是這個x86_64-posix-seh,下載下來就是個7z的壓縮包哈,無需安裝的。

?

下載完,解壓到自己想要放置的目錄中去。

目錄結構:

2、配置MingG64環境變量

這個蠻簡單的哈。

先復制我們之前MingG64放置的路徑位置,一直到bin路徑哈。

如我的就是:D:\computeSoft\cpp\mingw64\bin

鼠標右鍵點擊我的電腦–>點擊 高級系統配置–>點擊 環境變量點擊新建將你的復制好的路徑粘貼進去即可。

測試是否安裝好

我們按下 win+r ,輸入cmd,來命令行,輸入gcc --version進行測試。彈出這樣的就是配置成功了。

3、VsCode配置C/C++開發環境

3.1、安裝C/C++擴展

創建一個空文件夾,確保這個文件夾所在的文件路徑沒有中文字符哈,不然會報錯的。

然后我們用VsCode打開。

安裝一下這個哈。

安裝完成之后,直接在VsCode中按 ctrl+shift+p快捷鍵

出現以下界面: 直接搜索C/C++即可,我是因為已經搜過了。

搜到后點進去:這里附屬一張中文翻譯版本截圖

3.2、修改生成的Json配置文件

用VsCode 打開這個空文件夾,新建一個test.cpp文件哈。

#include <stdio.h>
#include <windows.h>
int main()
{printf("Hello\n");system("pause"); // 保持窗口不被關閉哈 這個固定的方法我還沒找到 只能先這么寫了return 0;
}

打開launch.json文件,再次點擊run--> add Configuration

之后我直接放圖哈。點擊運行–>以非調試模式運行。

點擊后,彈出如下彈窗選項:? ? ? ? ? ? ? ??

附屬上其他的人VsCode會默認生成一個.vscode文件夾:

平常在文章中看到的要編輯的json文件也就這兩個了。

默認生成的文件如下:

c_cpp_properties.json

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "D:\\computeSoft\\cpp\\mingw64\\bin\\gcc.exe","cStandard": "c17","cppStandard": "gnu++14","intelliSenseMode": "windows-gcc-x64"}],"version": 4
}

task.json

{"tasks": [{"type": "cppbuild","label": "C/C++: gcc.exe build active file",//C語言就改成gcc.exe,C++就改成g++.exe"command": "D:\\computeSoft\\cpp\\mingw64\\bin\\gcc.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"
}

我們需要添加或修改的地方:

第一個,將launch.json文件中第16行的externalConsole屬性修改為true,這樣就能彈出窗口第二個:在task.json文件中的tasks屬性下的args中增加兩行屬性:

"-fexec-charset=GBK", // 處理mingw中文編碼問題

"-finput-charset=UTF-8",// 處理mingw中文編碼問題?

?4、測試運行,直接按ctrl+F5也能運行

#include <stdio.h>
#include <windows.h>
int main()
{printf("Hello World!\n");printf("很高興,能夠遇到你! \n");system("pause");return 0;
}

擴展:g++和gcc的區別

g++和gcc的區別:

1、對于不同后綴的文件當作程序不同。c后綴的文件,gcc把它當做是C程序;g++當做是C++程序;對于.cpp后綴的文件,gcc和g++都會當做c++程序。gcc可以判斷出目標程序所使用編程語言的類別,會把xx.c文件當做C語言編譯,把xx.cpp文件當做C++語言編譯。而g++只把xx.c和xx.cpp一律當做C++語言來編譯

2、編譯階段調用不同,g++會調用gcc。

3、連接階段方式不同,通常會用g++來完成,這是因為gcc命令不能自動和c++程序使用的庫連接。

4、在編譯C++文件時,g++會自動連接一些標準庫或基礎庫,而gcc不會,當正在編譯的C++代碼文件依賴STL標準庫時候,為了使用STL,gcc命令需要增加參數-lstdc++。因此雖然gcc和g++都可以編譯C++ 語言,但是使用g++會更方便一些。

gcc/g++在執行編譯工作的時候,總共需要4步:第一步預處理,生成.i的文件預處理器cpp。第二步將預處理后的文件轉換成匯編語言,生成文件.s編譯器egcs。第三步有匯編變為目標代碼(機器代碼)生成.o的文件匯編器as。第四步連接目標代碼,生成可執行程序鏈接器ld。

擴展: VSCode的Json配置

tasks.json

tasks.json 文件定義了 VSCode 中的構建任務。你可以配置 VSCode 在構建(編譯)你的項目時應執行的操作。例如,使用 g++ 編譯器編譯 C++ 代碼。

點擊左上角...:終端:配置任務

點擊:C/C++:g++.exe 生成活動文件

在.vscode文件夾自動創建了tasks.json,下面包含了完整解釋:

 {// 配置文件版本"version": "2.0.0","tasks": [{// 任務名稱"label": "C/C++: 使用 g++ 生成可執行文件",// 任務類型"type": "cppbuild",// 編譯器路徑"command": "g++.exe",// 編譯參數"args": ["-fdiagnostics-color=always", // 彩色輸出"-g",                         // 含調試信息"${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],// 當前工作目錄"options": {"cwd": "${fileDirname}"},// 錯誤匹配器"problemMatcher": ["$gcc"],// 構建任務組,設為默認"group": {"kind": "build","isDefault": true},// 附加信息"detail": "由調試器自動生成的 C++ 編譯任務"}]
}

launch.json

launch.json 文件定義了調試配置。你可以配置 VSCode 如何啟動和調試你的應用程序,包括設置調試器路徑、啟動參數等。

點擊左上角...:運行:添加配置

點擊:C/C++(GDB/LLDB)

點擊添加配置:{}C/C++: (gdb) Windows 上的 Bash 啟動

在.vscode文件夾自動創建了launch.json,下面包含了完整解釋:
?

{"version": "0.2.0","configurations": [{"name": "C/C++: 使用 gdb 啟動調試","type": "cppdbg","request": "launch",// 設置為當前 .cpp 文件對應的可執行文件"program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb",// 推薦設置為 MinGW 的 gdb 完整路徑(自動也可以)"miDebuggerPath": "gdb.exe",// 啟動調試器時運行的初始化命令"setupCommands": [{"description": "啟用 gdb 整齊打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "設置反匯編風格為 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}],// 關鍵項:調試前自動構建,確保是最新的可執行文件"preLaunchTask": "C/C++: 使用 g++ 生成可執行文件"}]
}

c_cpp_properties.json

c_cpp_properties.json是一個配置文件,用于指定C/C++項目的編譯器和頭文件路徑等相關設置。

按Ctrl+Shift+P調出命令面板

輸入C/C++: Edit Configurations (UI)并選擇它

使用此編輯器編輯在基礎c_cpp_properties.json文件中定義的 IntelliSense 設置。在此編輯器中所做的更改僅適用于所選的配置。要一次編輯多個配置,請轉到 c_cpp_properties.json

在.vscode文件夾自動創建了c_cpp_properties.json,下面包含了完整解釋:?

{// 配置數組// 包含所有代碼配置的數組。"configurations": [{// 配置名稱// 此配置的名稱為“Win32”。"name": "Win32",// 包含路徑// 編譯時要包含的路徑,可以使用通配符。"includePath": ["${workspaceFolder}/**"],// 預處理器定義// 編譯時定義的預處理器宏。"defines": ["_DEBUG",    // 調試模式"UNICODE",   // 使用 Unicode 字符集"_UNICODE"   // 使用 Unicode 字符集],// 編譯器路徑// 指定編譯器的路徑。"compilerPath": "D:\\CPPcode\\MinGW\\bin\\gcc.exe",// C標準// 指定要使用的C語言標準。"cStandard": "c17",// C++標準// 指定要使用的C++語言標準。"cppStandard": "gnu++17",// IntelliSense 模式// 指定IntelliSense的模式。"intelliSenseMode": "windows-gcc-x64"}],// 配置文件版本// 此配置文件的版本。"version": 4
}

問題:如果碰到:

launch: program 'D:\projectCpp\cProject\demoCPP01' does not exist這類報錯的,按照如下修改

1、確認編譯的是C還是C++

如果是C,就將task.json中的command中的改成gcc.exe

如果是C++,這里就改成g++.exe

launch.json如果非需要,可以不配置,否則不會重新編譯,感覺launch.json這個文件會在task.json之前執行,但是program這個參數表示可執行的文件,還是必填,此時文件還未編譯就找不到文件

參考:

1、VsCode 配置 C/C++ 開發環境,真的很簡單-騰訊云開發者社區-騰訊云

2、【操作與配置】VSCode配置C/C++及遠程開發_vscode c++遠程調試-CSDN博客

3、保姆級教程:C++/C 編程運行環境配置,C++/C 運行環境搭建_c++環境配置-CSDN博客

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

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

相關文章

用C#編寫一個讀取磁盤第一扇區的程序

1.運行結果 2.WinHex校驗 3.程序 using System; using System.IO;class Program {static void Main(){try{// 以管理員權限運行此程序const string drivePath "\\.\G:";const int sectorSize 512; // 標準扇區大小// 打開邏輯驅動器&#xff08;需要管理員權限&a…

【PyTorch】PyTorch預訓練模型緩存位置遷移,也可拓展應用于其他文件的遷移

目錄 前言&#xff1a; 一、具體實現&#xff1a; 二、關鍵技術解析 路徑動態拼接 安全目錄創建 環境變量魔法 遷移條件檢查 三、代碼實現&#xff1a; 前言&#xff1a; 當模型文件下載到本地c盤的默認路徑時&#xff0c;可用以下代碼的形式進行文件位置的遷移。 一、…

Python 機器學習核心入門與實戰進階 Day 2 - KNN(K-近鄰算法)分類實戰與調參

? 今日目標 理解 KNN 的原理與“以鄰為近”的思想掌握 K 值選擇與模型效果的關系學會使用 sklearn 訓練 KNN 模型實現 KNN 分類 模型評估 超參數調優 &#x1f4d8; 一、KNN 算法原理 KNN&#xff08;K-Nearest Neighbors&#xff09;核心思想&#xff1a; 給定一個待預測…

pppoe寬帶連接-系列命令調用

以下是對PPPoE相關命令的詳細解釋及用法說明&#xff1a; 1. pppoe 功能&#xff1a;PPPoE基礎工具集&#xff0c;通常作為其他命令的底層依賴。 用法&#xff1a;一般不直接使用&#xff0c;而是通過pppoe-*系列命令調用。 2. pppoe-connect 功能&#xff1a;建立PPPoE連接…

C# 合并兩個byte數組的幾種方法

1. 使用 Array.Copy 方法&#xff08;高效推薦&#xff09;byte[] array1 { 1, 2, 3 }; byte[] array2 { 4, 5, 6 };byte[] combined new byte[array1.Length array2.Length]; Array.Copy(array1, 0, combined, 0, array1.Length); Array.Copy(array2, 0, combined, array1…

Spring AI 源碼

目錄 Spring AI 介紹 Spring AI 組件介紹 Spring AI 結構化輸出 Srping AI 多模態 Spring AI 本地Ollama Spring AI 源碼 Spring AI Advisor機制 Spring AI Tool Calling Spring AI MCP Spring AI RAG Spring AI Agent Spring AI 是一個用于 AI 工程的應用程序框架。 其目標是…

釘釘企業應用開發系列:前端實現自定義右上角菜單(dd.http + Vue3)

本文將圍繞“如何在釘釘企業應用中自定義右上角菜單”這一主題進行講解&#xff0c;并結合現代前端技術棧&#xff08;Vue3 Composition API&#xff09;展示完整實現過程&#xff0c;幫助你快速構建具備原生交互體驗的企業應用。一、前置準備1. 注冊釘釘開發者賬號并創建應用…

STC8H驅動兩相四線步進電機

兩相步進電機, STC8H系列 用高級PWM實現SPWM細分驅動 /************* 功能說明 ************** 用B組高級PWM細分驅動2相4線小型步進電機, 支持1、2、4、8、16、32、64細分, 比如1.8度的電機4細分到0.45度. 本程序用于演示SPWM多細分直接驅動2相4線小型步進電機…

讀書筆記:《DevOps實踐指南》

《DevOps實踐指南》 美 Gene Kim, Jez Humble, Patrick Debois, John Willis 著&#xff1b;劉征&#xff0c;王磊&#xff0c;馬博文&#xff0c;曾朝京 譯 個人理解&#xff1a; 向客戶交付價值&#xff0c;快速、高效、高質量交付 信息全流程共享、全過程參與、關注軟件…

創客匠人視角:創始人 IP 從流量狂歡到價值深耕的蛻變之路

在知識付費行業浪潮中&#xff0c;創客匠人深耕九年&#xff0c;見證了無數 “一夜爆紅” 與 “迅速隕落” 的案例。從 “菏澤樹哥” 的流量泡沫&#xff0c;到天水麻辣燙的短暫熱度&#xff0c;這些現象折射出行業發展的階段性特征&#xff0c;也促使創始人 IP 打造的底層邏輯…

ArchLinux:別樣的btrfs log tree修復大賽(errno=-5 IO failure Failed to recover log tree)

archlinux 簡明指南本指南包含 archlinux 安裝、配置、維護等&#xff0c;幫助新手快速上手https://arch.icekylin.online/一個月黑風高的上午&#xff1a;美滋滋的打開電腦進grub選擇arch啟動 欸&#xff01;突然就卡在這里了&#xff0c;系統進了rootfs&#xff0c;并且長按電…

Laravel8中使用phpword生成word文檔

最近在開發有關考試試卷相關的內容&#xff0c;需要生成試卷的word文檔并下載。 這里用到了phpoffice/phpword插件&#xff0c;這里記錄下一些開發過程中注意的點。 1.安裝phpoffice/phpword composer require phpoffice/phpword2.準備一個word模板方便向其中寫入需要生成的內容…

spring-ai-alibaba官方 Playground 示例

1、Spring AI Alibaba 官方社區開發了一個包含完整 “前端UI后端實現” 的智能體 Playground 示例&#xff0c;示例使用 Spring AI Alibaba 開發&#xff0c;可以體驗聊天機器人、多輪對話、圖片生成、多模態、工具調用、MCP集成、RAG知識庫等所有框架核心能力。 2、界面 3、準…

k8s pod深度理解

一、理論 pod等同于邏輯主機&#xff0c;在它上面運行各種程序&#xff08;容器&#xff09; pod的pause容器作用&#xff0c;pod網絡、存儲 所有容器的父容器&#xff0c;負責回收僵尸容器&#xff0c;同時它為pod中的容器提供了統一的網絡及統一的共享存儲。 pod的endpoint…

Android Auto即將帶來變革

在2025年谷歌I/O開發者大會上&#xff0c;Android Auto迎來重磅升級。除了集成Gemini智能助手外&#xff0c;本次更新還突破性地為車載信息娛樂系統新增了瀏覽器和視頻應用支持。值得注意的是&#xff0c;Spotify應用也將獲得一系列創新功能&#xff0c;進一步豐富用戶的駕駛體…

Jenkins 與 GitLab CI/CD 的核心對比

Jenkins 與 GitLab CI/CD 的核心對比及中小企業選型建議如下&#xff1a; &#x1f504; ?核心功能對比? ?維度??Jenkins??GitLab CI/CD??集成性?需手動配置插件對接代碼倉庫&#xff08;如 GitLab&#xff09;原生深度集成 GitLab 倉庫&#xff0c;實現代碼-CI/CD …

每日問題總結

fairy GUI適配相關問題 為什么自己適配好了但是打包發布到unity沒有UI顯示呢&#xff1f; 原因可能是你發布的組件和圖片不在同一個包下面&#xff0c;因為fairyGUI的分包限制問題&#xff0c;每一個包限制在2048M大小。不能超過這個大小&#xff0c;所以說&#xff0c;有可能…

embbding you should know

embedding&#xff1a;就是將詞向量或者圖向量 采用權重升維度&#xff0c;更好的去表達這個特征&#xff1b;nn.Embedding 是 PyTorch 中的 查表式嵌入層&#xff08;lookup‐table&#xff09;&#xff0c;用于將離散的整數索引&#xff08;如詞 ID、實體 ID、離散特征類別等…

【JS-6.2-模板字符串】ES6 模板字符串:現代JavaScript的字符串處理利器

在ES6(ECMAScript 2015)引入的所有新特性中&#xff0c;模板字符串(Template Literals)可能是最直觀、最容易被開發者接受并廣泛使用的特性之一。它徹底改變了我們在JavaScript中處理字符串的方式&#xff0c;提供了更強大、更靈活的字符串操作能力。本文將深入探討模板字符串的…

百度捂緊“錢袋子”

何俊杰依然是李彥宏手里最能用、也最信得過的人之一。 作者|景行 編輯|文昌龍 李彥宏的OKR又兌現了一條。年初他在組織建設的OKR里放話“組織負責人進一步年輕化&#xff0c;提倡賽馬”&#xff0c;如今“賽馬”跑來了百度新CFO。 7月1日&#xff0c;李彥宏發全員郵件&#…