日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

挑把趁手的兵器 | VSCode配置C/C++學習環境

來源: 責編: 時間:2024-02-05 17:22:09 296觀看
導讀本文經自動駕駛之心公眾號授權轉載,轉載請聯系出處。很多大學的計算機專業用的入門語言都是C語言,通常老師會給學生指定一款IDE來進行程序的編寫,比如vc++6.0、Code::Blocks、Dev c++,可是這些IDE大都比較老舊,用起來有很

本文經自動駕駛之心公眾號授權轉載,轉載請聯系出處。FoE28資訊網——每日最新資訊28at.com

很多大學的計算機專業用的入門語言都是C語言,通常老師會給學生指定一款IDE來進行程序的編寫,比如vc++6.0、Code::Blocks、Dev c++,可是這些IDE大都比較老舊,用起來有很多不順暢的地方,而且界面粗糙,一點都沒有印象中程序員該有的那種炫酷的感覺,所以尋找一款現代化的、功能強大的編輯器/IDE對于一些人來說還是很有必要的。FoE28資訊網——每日最新資訊28at.com

也許有人說這些IDE開箱即用,不需要額外配置,對于什么都還不了解的新人來說很合適。我認為這是有道理的,但不應當妨礙一個有好奇心和折騰欲的學生去嘗試其他的編程工具,我個人認為愛折騰對計算機專業的學生來說是一項可貴的品質,折騰工具、搭建環境的過程中可以學到很多有用的東西,這是與計算機交流的過程,也是每一個進入代碼世界的人的必經之路,只是要學會克制,不要把時間全花在折騰工具和環境上。FoE28資訊網——每日最新資訊28at.com

擁有一套自己精心配置的編程工具,可以幫助計算機新人更快地走進代碼的世界,提高對編程、對學業的興趣。FoE28資訊網——每日最新資訊28at.com

目前網上有大量的關于vscode的文章和教程,但我沒有找到一篇細致的、面向小白的、搭建語言學習環境而非實際開發環境的教程,很多教程只是寫了怎樣配置,卻沒有寫為什么要這樣配置,我自己搞清楚其中種種后決定記錄下來。FoE28資訊網——每日最新資訊28at.com

為什么是VSCode?

VSCode是微軟出品的輕量級編輯器,定位是文本編輯器,開源,免費,海量插件,外觀出色,簡潔流暢,支持眾多編程語言,支持三大操作系統Windows、Linux、MacOS。總之,這是一款足夠強大和優雅的編輯器,你值得擁有FoE28資訊網——每日最新資訊28at.com

與VScode(Visual Studio Code)名字相像的VS(Visual Studio)是微軟的IDE,而VScode是編輯器,兩者定位不同,一個藍色一個紫色,不要搞混了。
我的環境是windows10, linux和mac os可能不適用,但如果你是小白的話,我認為其中很多內容還是很有參考意義的
本文以C語言為例,C++同理,涉及到不同的地方有標注FoE28資訊網——每日最新資訊28at.com

讓我們開始這場vscode的配置之旅FoE28資訊網——每日最新資訊28at.com

Step 0 基本概念

小白之所以是小白,就在于很多東西不知道、不了解、沒見過、沒用過,在你配置編程工具的過程中,你會遇到很多課本里沒有、老師課上沒說的東西、概念,這也是為什么很多人說配置vscode太麻煩了的原因,這種時候,善用搜索引擎,遇到不懂的東西、沒見過的名詞,上網查一下,大概了解一下是什么再接著往下看就行了。FoE28資訊網——每日最新資訊28at.com

在這篇文章中,我會盡量解釋清楚每個對你來說可能陌生的東西,不過仍然有可能會有你不明白的地方,網上查一下就好。FoE28資訊網——每日最新資訊28at.com

最一開始,你應當了解如下概念:FoE28資訊網——每日最新資訊28at.com

  • 編程是怎樣的一個過程:

FoE28資訊網——每日最新資訊28at.com

首先用文本編輯器編寫源代碼 -> 編譯源代碼 生成目標代碼-> 將目標代碼與其它代碼(如庫函數代碼、標準啟動代碼)鏈接起來 -> 生成可執行代碼FoE28資訊網——每日最新資訊28at.com

  • 區分編輯器、編譯器、IDE:

編輯器就是處理文本(源碼)的程序,寫代碼寫的就是文本,編輯器可能提供智能提示、代碼高亮等輔助功能,但不負責源碼到二進制文件的操作;FoE28資訊網——每日最新資訊28at.com

編譯器就是負責將源碼文本翻譯成計算機能夠理解和執行的二進制文件的程序;FoE28資訊網——每日最新資訊28at.com

集成開發環境(IDE,Integrated Development Environment )是用于提供程序開發環境的應用程序,包括了代碼編輯器、編譯器、調試器和圖形用戶界面工具。集成了代碼編寫、分析、編譯、調試等一整套工具鏈。FoE28資訊網——每日最新資訊28at.com

  • 什么是搭建環境:

vscode定位代碼編輯器,不是IDE,不包含編譯功能,因此需要我們自己安裝編譯器、調試器等編譯器套件,并使兩者有效的配合起來,以實現快捷操作。把這一整套工具鏈整合到一起的過程就是我們所說的搭建環境。FoE28資訊網——每日最新資訊28at.com

ok,到這里,我們就清楚要做什么了:獲取編輯器 -> 獲取編譯套裝(編譯器、調試器、頭文件庫等) -> 做好兩者之間的溝通工作(配置文件)FoE28資訊網——每日最新資訊28at.com

Step 1 下載安裝

兩個東西:編輯器和編譯套裝FoE28資訊網——每日最新資訊28at.com

編輯器就是我們的vscode了,到官網FoE28資訊網——每日最新資訊28at.com

Visual Studio Code - Code Editing. Redefined code.visualstudio.com/FoE28資訊網——每日最新資訊28at.com

下載安裝:FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

雙擊打開下載好的程序進行安裝,安裝到默認位置或者你自定義的位置,安裝過程中注意這個界面:FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

這幾個選項建議全部勾上。FoE28資訊網——每日最新資訊28at.com

然后是編譯套裝FoE28資訊網——每日最新資訊28at.com

編譯工具我們選用gcc(全稱GNU Compiler Collection 意思是GNU編譯器套件),不過不是原版的gcc,而是它在Windows下的特制版MinGW(全稱Minimalist GNU on Windows)。它實際上是將GCC 移植到了 Windows 平臺下,并且包含了 Win32API ,因此可以將源代碼編譯為可在 Windows 中運行的可執行程序。而且還可以使用一些 Windows 不具備的,Linux平臺下的開發工具。MinGW又分為MinGW-w64 與 MinGW ,區別在于 MinGW 只能編譯生成32位可執行程序,而 MinGW-w64 則可以編譯生成 64位 或 32位 可執行程序。MinGW 現已被 MinGW-w64 所取代,且 MinGW 也已停止了更新。FoE28資訊網——每日最新資訊28at.com

因此,我們最終下載安裝的是MinGW-w64FoE28資訊網——每日最新資訊28at.com

下載地址:FoE28資訊網——每日最新資訊28at.com

mingw-w64 sourceforge.net/projects/mingw-w64/files/
進去后往下滑,找到這個:FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

下載下來后是一個壓縮文件,將它解壓縮(解壓縮軟件推薦Bandizip)得到mingw64文件夾,然后把它拖動到一個合適的位置(或者直接解壓縮到這個位置),地址中不要有中文,推薦C:/Program FilesFoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

你可以打開bin目錄看下,里面有很多后綴名是.exe 的可執行程序,這些就是開發時所需的工具,如:gcc.exe 是C語言程序的編譯器,g++.exe 是C++語言的編譯器,gdb.exe 是用來調試程序的 debug 工具。FoE28資訊網——每日最新資訊28at.com

還有一些頭文件也里面,如stdio.h的位置是C:/Program Files/mingw64/x86_64-w64-mingw32/includeFoE28資訊網——每日最新資訊28at.com

然后,為了讓程序能訪問到這些編譯程序,需要把它們所在的目錄(我這里是C:/Program File/mingw64/bin,點擊地址欄進行復制)添加到環境變量Path中FoE28資訊網——每日最新資訊28at.com

環境變量是 Windows 系統中用來指定運行環境的一些參數,它包含了關于系統及當前登錄用戶的環境信息字符串。當用戶運行某些程序時,系統除了會在當前文件夾中尋找某些文件外,還會到環境參數的默認路徑中去查找程序運行時所需要的系統文件。FoE28資訊網——每日最新資訊28at.com

用windows的搜索功能(快捷鍵是Windows徽標鍵+S)搜索環境變量FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

打開它FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

然后一路確定回去。FoE28資訊網——每日最新資訊28at.com

現在驗證一下,搜索打開cmd命令提示符,輸入gcc --version(中間有空格),按回車,看到如下信息 :FoE28資訊網——每日最新資訊28at.com

圖片FoE28資訊網——每日最新資訊28at.com

說明gcc安裝成功。FoE28資訊網——每日最新資訊28at.com

現在重啟一下電腦。FoE28資訊網——每日最新資訊28at.com

好了,我們的電腦里已經有了這兩個東西了,他們是從不同的地方下載的,安裝的位置也不同,目前兩者之間還沒有任何聯系,接下來,我們應該去搭建起他們之間的橋梁了,不過別著急,咱們先來了解一下文件結構。FoE28資訊網——每日最新資訊28at.com

Step 2 文件結構

文件結構就是你組織文件夾、文件,決定他們怎樣嵌套、怎樣從屬的方法。FoE28資訊網——每日最新資訊28at.com

這一步是區分搭建的是語言學習環境還是實際項目開發環境的關鍵。FoE28資訊網——每日最新資訊28at.com

這兩者有什么區別呢?想想你寫hello world時是怎樣寫的,你寫了一個單文件,只有一個.c文件,然后你按下綠色三角進行編譯運行生成.exe可執行文件,語言學習環境大都是這樣的單文件編譯運行調試,或者是涉及到簡單的幾個頭文件和源文件的組合這樣的多文件結構。而實際項目開發呢,實際中的一個小項目的目錄結構可能長這樣:FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

我們的語言學習環境不是這樣的,我們用不到lib、build、makefile等文件夾/文件,我們的目錄結構應當方便我們新建一個單文件,然后編譯調試,這些文件還應當在一起以方便查看和管理FoE28資訊網——每日最新資訊28at.com

具體怎么操作:FoE28資訊網——每日最新資訊28at.com

建議把代碼都組織在一個地方,以方便管理。以我為例,我在C盤根目錄建了一個名叫Codefield的文件夾,我所有代碼相關的東西都組織在這里面。FoE28資訊網——每日最新資訊28at.com

現在,打開文件資源管理器,找一個合適的地方,創建一個這樣的Codefield文件夾(文件夾的名字你也可以改成別的,注意路徑中不要出現中文和空格,因為gcc調試器不支持中文路徑),然后在這個文件夾下再新建一個文件夾CODE_C,你所有的c語言代碼就放在這里面,由于vscode以文件夾組織項目,而我們涉及到單文件和簡單的多文件兩種情景,所以在CODE_C下再新建兩個文件夾C_Single 和 C_Multiple ,這兩個就是我們的工作區文件夾了。FoE28資訊網——每日最新資訊28at.com

圖片FoE28資訊網——每日最新資訊28at.com

今后,涉及到其他代碼相關的東西時,你就可以在Codefield文件夾下組織了,比如再學一門C++語言時,建一個CODE_Cpp文件夾;玩leetcode刷算法的時候,建一個Leetcode文件夾;從github克隆別人的項目時,建一個Github文件夾;自己做項目時,建個Projects文件夾……FoE28資訊網——每日最新資訊28at.com

現在,讓我們看一下工作區文件夾,以C_Single為例,這其中的文件結構又該怎么組織?(這一步你不需要建文件,弄明白結構就好)首先要有一個.vscode文件夾(這是vscode的配置文件所在處,下一步會詳細講),然后就是我們的源文件,在學習過程中,通常會寫很多的源文件,把他們全堆在一起顯然不夠優雅,我們對這些源文件進行一下分類,比如按章節分:FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

或者按類型分:FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

具體怎么分可以看你的學習情況。還有一個問題,源碼編譯后會生成exe可執行文件,它們放在哪里?和源文件放在一起的話,當文件夾下文件多起來時會非常雜亂,因此我們選擇把exe文件統一放在bin文件夾下,這個bin文件夾不應當直接放在工作區文件夾下,這樣會造成不同的源碼分類文件夾下的文件都不能重名,于是我們在每一個分類文件夾下都建一個bin文件夾,最終效果如下:FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

exercise目錄下有個bin目錄,hello.c在exercise下FoE28資訊網——每日最新資訊28at.com

C_Mutile類似但有所不同,由于一組程序由多個文件構成,我們把這C_Single中的單個源文件替換成文件夾就好,每個文件夾里面就是一組源文件,并且exe文件也放在其中,不需要單獨的bin目錄。FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

至此,你有了一個合適的文件結構,我們可以開始進行 vscode 的配置了。FoE28資訊網——每日最新資訊28at.com

Step 3 vscode配置文件

這一步開始前,我們再來了解幾個概念。FoE28資訊網——每日最新資訊28at.com

命令行:命令行 或 命令行界面,是一種基于文本的用來查看、處理、和操作計算機上的文件和程序的工具。FoE28資訊網——每日最新資訊28at.com

終端/控制臺:普通用戶可以簡單的把終端和控制臺理解為:可以輸入命令行并顯示程序運行過程中的信息以及程序運行結果的窗口。 不必要嚴格區分這兩者的差別。FoE28資訊網——每日最新資訊28at.com

shell:終端自身并不執行用戶輸入的命令,它只是負責把輸入的內容傳送到主機系統,并把主機系統返回的結果呈現給用戶。負責解釋執行用戶輸入的命令并返回結果的,正是Shell,它是溝通用戶和系統內核的中間橋梁。FoE28資訊網——每日最新資訊28at.com

現在思考一個問題,我們搭的這套環境中編輯器選的是vscode,但理論上任何能處理文本的編輯器都能用來寫代碼,比如Windows自帶的記事本,你可以在桌面新建一個txt文件,命名為hello,然后用記事本寫個helloworld程序進去,再把這個文件后綴改成.c,這就是一個源代碼文件了,我們該如何對它進行編譯運行呢?答案是通過命令行,我們已經安裝了編譯器套裝并把它添加進了環境變量,現在可以使用gcc命令了:搜索打開cmd命令提示符,默認進入的是用戶目錄,輸入cd desktop 進入桌面目錄,像這樣:FoE28資訊網——每日最新資訊28at.com

圖片FoE28資訊網——每日最新資訊28at.com

然后輸入編譯命令 gcc -o hello hello.c(注意空格),按下回車,你會發現桌面多了hello.exe文件,這說明我們成功編譯生成了可執行文件,然后再在命令行中輸入hello.exe運行程序 。FoE28資訊網——每日最新資訊28at.com

這樣每次都用命令行太麻煩了,我們希望用更快捷的方式執行這一過程,但記事本不是專門給你寫代碼的,它不能提供這樣的配置,但是vscode就不一樣了,專門寫代碼的編輯器當然有專門的方式讓你快捷地編譯運行。這是通過.vscode文件夾下的json配置文件實現的,這些json文件怎么寫是由vscode開發團隊規定的(感興趣可以去看官方的文檔),其中一個是tasks.json,task是任務的意思,我們的編譯和運行就是我們想要vscode執行的任務,為此我們要在tasks.json里寫兩個task:BuildRun(這里為什么不是Compile呢?是因為從源碼到可執行的過程中不僅是編譯(Compile),還有預編譯、鏈接等過程,用 構建(Build) 來表述更合適)。除了編譯和運行,我們還需要進行**調試(Debug)**,這個就不是通過task來實現的了,而是通過launch.json文件來實現。FoE28資訊網——每日最新資訊28at.com

現在,打開vscode,發現全是英文,我們先裝個漢化插件:FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

然后搜索C/C++安裝這個插件,這是對語言的支持插件FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

重啟vscode,打開C_Single文件夾:FoE28資訊網——每日最新資訊28at.com

注意要 文件->打開文件夾 這樣打開,vscode中打開的根目錄是C_SingleFoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

然后新建.vscode文件夾(注意前面有個.),然后在里面新建tasks.jsonlaunch.jsonFoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

打開的根目錄是C_SingleFoE28資訊網——每日最新資訊28at.com

下面是這兩個文件的具體內容,帶有詳細注釋,你要大致看一遍,看不太懂沒關系。復制粘貼到你的文件里,注意里面有一些路徑之類的東西需要你進行修改,還有一點是這里的配置和上一步中提到的工作區下的文件結構是嚴格一致的,必須那樣組織文件。FoE28資訊網——每日最新資訊28at.com

tasks.jsonFoE28資訊網——每日最新資訊28at.com

{    "version": "2.0.0",    "tasks": [        {//這個大括號里是‘構建(build)’任務            "label": "build", //任務名稱,可以更改,不過不建議改            "type": "shell", //任務類型,process是vsc把預定義變量和轉義解析后直接全部傳給command;shell相當于先打開shell再輸入命令,所以args還會經過shell再解析一遍            "command": "gcc", //編譯命令,這里是gcc,編譯c++的話換成g++            "args": [    //方括號里是傳給gcc命令的一系列參數,用于實現一些功能                "${file}", //指定要編譯的是當前文件                "-o", //指定輸出文件的路徑和名稱                "${fileDirname}//bin//${fileBasenameNoExtension}.exe", //承接上一步的-o,讓可執行文件輸出到源碼文件所在的文件夾下的bin文件夾內,并且讓它的名字和源碼文件相同                "-g", //生成和調試有關的信息                "-Wall", // 開啟額外警告                "-static-libgcc",  // 靜態鏈接libgcc                "-fexec-charset=GBK", // 生成的程序使用GBK編碼,不加這一條會導致Win下輸出中文亂碼                "-std=c11", // 語言標準,可根據自己的需要進行修改,寫c++要換成c++的語言標準,比如c++11            ],            "group": {  //group表示‘組’,我們可以有很多的task,然后把他們放在一個‘組’里                "kind": "build",//表示這一組任務類型是構建                "isDefault": true//表示這個任務是當前這組任務中的默認任務            },            "presentation": { //執行這個任務時的一些其他設定                "echo": true,//表示在執行任務時在終端要有輸出                "reveal": "always", //執行任務時是否跳轉到終端面板,可以為always,silent,never                "focus": false, //設為true后可以使執行task時焦點聚集在終端,但對編譯來說,設為true沒有意義,因為運行的時候才涉及到輸入                "panel": "new" //每次執行這個task時都新建一個終端面板,也可以設置為shared,共用一個面板,不過那樣會出現‘任務將被終端重用’的提示,比較煩人            },            "problemMatcher": "$gcc" //捕捉編譯時編譯器在終端里顯示的報錯信息,將其顯示在vscode的‘問題’面板里        },        {//這個大括號里是‘運行(run)’任務,一些設置與上面的構建任務性質相同            "label": "run",             "type": "shell",             "dependsOn": "build", //任務依賴,因為要運行必須先構建,所以執行這個任務前必須先執行build任務,            "command": "${fileDirname}//bin//${fileBasenameNoExtension}.exe", //執行exe文件,只需要指定這個exe文件在哪里就好            "group": {                "kind": "test", //這一組是‘測試’組,將run任務放在test組里方便我們用快捷鍵執行                "isDefault": true            },            "presentation": {                "echo": true,                "reveal": "always",                "focus": true, //這個就設置為true了,運行任務后將焦點聚集到終端,方便進行輸入                "panel": "new"            }        }    ]}

launch.jsonFoE28資訊網——每日最新資訊28at.com

{    "version": "0.2.0",      "configurations": [          {//這個大括號里是我們的‘調試(Debug)’配置              "name": "Debug", // 配置名稱              "type": "cppdbg", // 配置類型,cppdbg對應cpptools提供的調試功能;可以認為此處只能是cppdbg            "request": "launch", // 請求配置類型,可以為launch(啟動)或attach(附加)            "program": "${fileDirname}//bin//${fileBasenameNoExtension}.exe", // 將要進行調試的程序的路徑            "args": [], // 程序調試時傳遞給程序的命令行參數,這里設為空即可            "stopAtEntry": false, // 設為true時程序將暫停在程序入口處,相當于在main上打斷點            "cwd": "${fileDirname}", // 調試程序時的工作目錄,此處為源碼文件所在目錄            "environment": [], // 環境變量,這里設為空即可            "externalConsole": false, // 為true時使用單獨的cmd窗口,跳出小黑框;設為false則是用vscode的內置終端,建議用內置終端            "internalConsoleOptions": "neverOpen", // 如果不設為neverOpen,調試時會跳到“調試控制臺”選項卡,新手調試用不到            "MIMode": "gdb", // 指定連接的調試器,gdb是minGW中的調試程序            "miDebuggerPath": "C://Program Files//mingw64//bin//gdb.exe", // 指定調試器所在路徑,如果你的minGW裝在別的地方,則要改成你自己的路徑,注意間隔是//            "preLaunchTask": "build" // 調試開始前執行的任務,我們在調試前要編譯構建。與tasks.json的label相對應,名字要一樣    }]}

到這里,差不多就已經成功了,讓我們寫個簡單的hello程序來試一下編譯、運行、調試:FoE28資訊網——每日最新資訊28at.com

首先在C_Single下新建一個exercise文件夾,來組織源碼文件,在exercise下新建hello.c文件,然后在exercise下建一個bin文件夾(注意從屬關系,不要建錯了,在vscode中想在某個目錄下新建文件/文件夾要先點擊一下該目錄,再點擊新建按鈕),hello.c中輸入如下代碼:FoE28資訊網——每日最新資訊28at.com

#include <stdio.h>int main(){    char name[10];    printf("Input your name: ");    scanf("%s",name);    printf("Hello,%s,this is your vscode!/n",name);    return 0;}

寫好后ctrl+s保存,進行如下操作:FoE28資訊網——每日最新資訊28at.com

  • 僅編譯(構建),用快捷鍵ctrl+shift+B,你會發現終端面板打開了,顯示如下:

圖片FoE28資訊網——每日最新資訊28at.com

沒有報錯,bin文件夾下多了hello.exe,編譯成功!FoE28資訊網——每日最新資訊28at.com

  • 編譯(構建)+運行,測試任務默認沒有快捷鍵,我們自己綁定一個:點擊左下角小齒輪->鍵盤快捷方式->搜索任務->找到運行測試任務,點擊左側加號添加鍵綁定,這里我們設為F4

FoE28資訊網——每日最新資訊28at.com

然后回到我們的hello程序頁面,按下F4,顯示如下:FoE28資訊網——每日最新資訊28at.com

圖片FoE28資訊網——每日最新資訊28at.com

輸入你的名字,按下回車,運行成功!FoE28資訊網——每日最新資訊28at.com

  • 接下來是調試(vscode的調試功能非常直觀易用,你會愛上它的),在第一個printf處打上斷點(點擊行號前面的小紅點,或者用快捷鍵F9),然后打開左側的運行面板,點擊綠色小三角開始調試(或者直接用調試快捷鍵F5)

FoE28資訊網——每日最新資訊28at.com

然后會出現調試工具欄,各按鈕功能如圖:FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

左側可以查看、監控變量FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

我們使用單步調試按鈕,快捷鍵F11,單步向下執行程序,黃色箭頭所指示行是現在未執行、下一步將要執行的語句,當執行到輸入語句時,黃色箭頭會消失,這時你在終端面板內進行輸入,然后按回車,黃色箭頭重新出現,可以繼續向下執行。FoE28資訊網——每日最新資訊28at.com

調試成功!FoE28資訊網——每日最新資訊28at.com

今后就可以新建源文件寫程序,F4一鍵編譯運行,F5一鍵開始調試FoE28資訊網——每日最新資訊28at.com

有沒有很激動? ^o^/FoE28資訊網——每日最新資訊28at.com

可能出現的問題

  • 中文亂碼

亂碼問題是由于文件編碼格式引起的,vscode默認的編碼格式是UTF-8,而Windows的終端的默認編碼是GBK,這就造成了中文會顯示成亂碼,解決辦法是生成程序時指定用GBK,我們的task里已經指定了,所以理論上你不應該出現這個問題FoE28資訊網——每日最新資訊28at.com

  • 找不到頭文件

正確添加了環境變量的話,不應該出現這個問題FoE28資訊網——每日最新資訊28at.com

  • “終端將被任務重用,按任意鍵關閉終端”

按照我們在task中的設置,每次執行一個task就會打開一個新的終端面板,你可以在下拉列表查看自己打開的面板:FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

如果你把task的"panle"屬性改成了"shared",所有的任務都用的這一個終端,vscode會提醒你“終端將被任務重用”,這句話并不是報錯,只是提醒,你無視它就好,而且在設置里還可以關閉這句提醒。FoE28資訊網——每日最新資訊28at.com

關于code runner
你可能在很多其他人的教程里見過它,這是一個第三方的插件,用它也可以實現編譯運行,原理也是代替你手動輸入命令行,也需要一定的配置。不過我覺得按照我的方法已經能很簡單便捷地實現編譯運行調試了,沒必要再用這個插件。FoE28資訊網——每日最新資訊28at.com

簡單的多文件程序

我們已經搞定了C_Single,多文件的C_Multiple的設置也類似,只需要改一下那兩個配置文件涉及到路徑的部分,文件如下,你可以對比一下:FoE28資訊網——每日最新資訊28at.com

多文件tasks.jsonFoE28資訊網——每日最新資訊28at.com

{    "version": "2.0.0",    "tasks": [        {            "label": "build",            "type": "shell",            "command": "gcc", //寫c++換成g++            "args": [                "${fileDirname}//*.c", //寫c++把 *.c 換成 *.cpp                "-o",                "${fileDirname}//${fileBasenameNoExtension}.exe",                "-g",                "-Wall",                 "-static-libgcc",                   "-fexec-charset=GBK",                "-std=c11",  //寫c++換成c++標準            ],            "group": {                "kind": "build",                "isDefault": true            },            "presentation": {                "echo": true,                "reveal": "always",                "focus": false,                "panel": "new"            },            "problemMatcher": "$gcc"        },        {            "label": "run",            "type": "shell",            "dependsOn": "build",            "command": "${fileDirname}//${fileBasenameNoExtension}.exe",            "group": {                "kind": "test",                "isDefault": true            },            "presentation": {                "echo": true,                "reveal": "always",                "focus": true,                "panel": "new"            }        }    ]}

多文件launch.jsonFoE28資訊網——每日最新資訊28at.com

{    "version": "0.2.0",    "configurations": [{        "name": "Debug",         "type": "cppdbg",         "request": "launch",        "program": "${fileDirname}//${fileBasenameNoExtension}.exe",        "args": [],        "stopAtEntry": false,         "cwd": "${fileDirname}",         "environment": [],         "externalConsole": false,        "internalConsoleOptions": "neverOpen",        "MIMode": "gdb",         "miDebuggerPath": "C://Program Files//mingw64//bin//gdb.exe",         "preLaunchTask": "build"     }]}

兩個文件夾有不同的配置,寫單文件時就打開C_Single,寫多文件時就打開C_Multiple,注意對應的文件結構。FoE28資訊網——每日最新資訊28at.com

有一點要注意,在寫多文件時,包含自己寫的頭文件要用雙引號,而不是尖括號,例如#include "myHeader.h",雙引號表示先在當前目錄下尋找頭文件。FoE28資訊網——每日最新資訊28at.com

你可以自己寫個簡單的多文件程序測試一下有沒有問題。FoE28資訊網——每日最新資訊28at.com

Step 4 更進一步

vscode的一大優點就在于插件生態豐富,通過插件可以擴展很多功能。這里推薦幾個:FoE28資訊網——每日最新資訊28at.com

  • one dark pro

主題插件,好像是下載量最多的主題插件,整體配色比較和諧。(vscode在顏值方面真的很能打)FoE28資訊網——每日最新資訊28at.com

  • Material Icon Theme

一套精心設計的圖標,可以讓你的文件/文件夾更有辨識度FoE28資訊網——每日最新資訊28at.com

  • Code Time

可以多維度的記錄你在vscode上花的時間,可以用這個插件記錄你碼代碼的時間,比如你可以定個類似每天編程2小時之類的目標,督促激勵自己學習編程。FoE28資訊網——每日最新資訊28at.com

  • Power Mode

這是一個炫酷的插件,可以給你敲代碼的過程添加特效,效果炸裂,具體操作可以看插件詳情頁。FoE28資訊網——每日最新資訊28at.com

還有其他很多有用有趣的插件,你可以看看別人的推薦帖。FoE28資訊網——每日最新資訊28at.com

另外vscode還有其他很多功能,比如快捷鍵、小地圖、搜索查找替換、代碼片段、集成git等等,你可以慢慢探索。FoE28資訊網——每日最新資訊28at.com

不過新手階段,注意不要把時間全花在這些折騰上,工具只是工具,好好學習才是更重要的事,不要舍本逐末。FoE28資訊網——每日最新資訊28at.com

結束語

我們的旅程結束了,幸運的話,你現在已經擁有了一個美妙的學習環境,你將vscode打磨成了一把趁手的兵器,它刀身優美、刀口鋒利,打開,猶如戰士拔刀對敵,關閉,猶如戰士收刀入鞘,你擁有了在代碼世界中劈荊斬棘的利刃,運用它、揮舞它吧。FoE28資訊網——每日最新資訊28at.com

FoE28資訊網——每日最新資訊28at.com

原文鏈接:https://mp.weixin.qq.com/s/o5arkq0kTsob9j5w8QmAlAFoE28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-74197-0.html挑把趁手的兵器 | VSCode配置C/C++學習環境

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Vue 發布十年了!你知道我這十年是怎么過的嗎?

下一篇: 十個掌握C++編程的關鍵要點

標簽:
  • 熱門焦點
  • 紅魔電競平板評測:大屏幕硬實力

    前言:三年的疫情因為要上網課的原因激活了平板市場,如今網課的時代已經過去,大家的生活都恢復到了正軌,這也就意味著,真正考驗平板電腦生存的環境來了。也就是面對著這種殘酷的
  • 石頭智能洗地機A10 Plus體驗:雙向自清潔治好了我的懶癌

    一、前言和介紹專為家庭請假懶人而生的石頭科技在近日又帶來了自己的全新旗艦新品,石頭智能洗地機A10 Plus。從這個產品名上就不難看出,這次石頭推出的并不是常見的掃地機器
  • 7月安卓手機好評榜:三星S23Ultra好評率第一

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數據來源安兔兔評測,收集時間2023年7月1日至7月31日,僅限國內市場。第一名:三星Galaxy S23 Ultra好評率:95.71%在即將迎來新
  • 5月安卓手機好評榜:魅族20 Pro奪冠

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數據來源安兔兔評測,收集時間2023年5月1日至5月31日,僅限國內市場。第一名:魅族20 Pro好評率:97.50%不得不感慨魅族老品牌還
  • 騰訊蓋樓,字節拆墻

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之&ldquo;想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗嗎?一起上晶核,即刻暴打!&rdquo;曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 網紅炒股不為了賺錢,那就是耍流氓!

    來源:首席商業評論6月26日高調宣布入市,網絡名嘴大v胡錫進居然進軍了股市。在一次財經媒體峰會上,幾個財經圈媒體大佬就&ldquo;胡錫進炒股是否知道認真報道&rdquo;展開討論。有
  • 東方甄選單飛:有些鳥注定是關不住的

    作者:彭寬鴻來源:華爾街科技眼&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;東方甄選創始人俞敏洪帶隊的&ldquo;7天甘肅行&rdquo;直播活動已在近日順利收官。成立后一
  • 華為HarmonyOS 4升級計劃公布:首批34款機型今日開啟公測

    8月4日消息,今天下午華為正式發布了HarmonyOS 4系統,在更流暢的前提下,還帶來了不少新功能,UI設計也有變化,會讓手機煥然一新。華為宣布,首批機型將會在
  • 三星Galaxy Z Fold/Flip 5國行售價曝光 :最低7499元/12999元起

    據官方此前宣布,三星將于7月26日也就是明天在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
黄色一区二区三区四区| 快射av在线播放一区| 亚洲免费观看视频| 99re热这里只有精品视频| 一本色道久久综合亚洲精品不卡 | 亚洲欧美日韩国产综合精品二区| 亚洲欧美成人| 久久久久久黄| 欧美剧在线观看| 国产欧美精品日韩区二区麻豆天美| 在线观看精品一区| 一区二区三区精品视频在线观看| 性做久久久久久免费观看欧美| 蜜桃av一区二区三区| 欧美国产日产韩国视频| 国产精品免费网站| 亚洲成在人线av| 中文在线不卡| 老司机午夜精品视频| 欧美小视频在线| 黄色另类av| 亚洲一区二区视频在线| 美女视频网站黄色亚洲| 国产精品萝li| 亚洲激情在线激情| 欧美一区二区三区免费视| 欧美精品九九| 狠狠色伊人亚洲综合网站色 | 美女诱惑黄网站一区| 国产精品国产三级国产普通话蜜臀| 影音先锋在线一区| 亚洲砖区区免费| 欧美激情中文字幕乱码免费| 国产欧美一区视频| 夜夜爽av福利精品导航| 久久女同互慰一区二区三区| 国产精品久久久久久妇女6080| 欧美一区二区三区电影在线观看| 免费在线成人| 国产午夜精品理论片a级探花| 99精品福利视频| 美女图片一区二区| 国产午夜精品久久久久久免费视| 日韩视频在线免费观看| 久久久久久**毛片大全| 国产伦理精品不卡| 亚洲视频每日更新| 欧美二区在线播放| 极品尤物久久久av免费看| 亚洲欧美变态国产另类| 欧美日韩在线精品| 亚洲高清在线播放| 久久久国产视频91| 国产欧美日韩一区二区三区| 中文有码久久| 欧美日韩国产综合新一区| 亚洲国产精品一区制服丝袜 | 国产精品免费一区二区三区在线观看| 亚洲人成艺术| 免费成人性网站| 影音先锋日韩精品| 久久久精品免费视频| 国产欧美日本在线| 亚洲一区在线免费观看| 欧美三级网页| 一本色道久久加勒比88综合| 欧美精品一区二区在线播放| 亚洲国产一二三| 久久野战av| 影音国产精品| 久久全国免费视频| 精品动漫3d一区二区三区| 久久久福利视频| 国产尤物精品| 欧美一区二区三区四区夜夜大片| 国产精品入口日韩视频大尺度| 亚洲天天影视| 国产精品久久久久99| 在线一区日本视频| 欧美亚日韩国产aⅴ精品中极品| 一区二区三区蜜桃网| 欧美日韩亚洲一区二区三区在线观看| 亚洲麻豆国产自偷在线| 欧美激情一区二区在线 | 国产欧美日本一区视频| 午夜亚洲视频| 国产亚洲一区在线播放| 久久av资源网站| 精品999久久久| 午夜在线a亚洲v天堂网2018| 国内精品久久久久久久影视蜜臀| 亚洲国产精品免费| 亚洲欧美三级在线| 国产一区二区三区电影在线观看| 亚洲在线视频观看| 国产精品亚洲片夜色在线| 午夜激情综合网| 国产欧美日韩精品专区| 久久av红桃一区二区小说| 国产精品男人爽免费视频1| 亚洲主播在线| 国产一区二区三区久久久久久久久| 久久精品91| 亚洲福利视频二区| 欧美激情aⅴ一区二区三区| 日韩视频在线免费| 国产精品v欧美精品v日韩精品| 亚洲一区久久| 国产精品一区三区| 欧美在线一级va免费观看| 伊人成年综合电影网| 欧美激情第二页| 中文久久精品| 国产一区二区三区观看| 欧美www视频| 亚洲图片你懂的| 国产在线精品一区二区中文| 国产主播一区二区三区四区| 久久免费国产精品1| 亚洲精品久久| 国产精品爽黄69| 麻豆精品一区二区综合av| 9l国产精品久久久久麻豆| 国产精品久久亚洲7777| 久久免费少妇高潮久久精品99| 亚洲激情一区二区三区| 国产精品第三页| 久久国产精品一区二区| 亚洲级视频在线观看免费1级| 国产精品国产一区二区| 久久久午夜精品| 一本一本a久久| 韩国一区二区三区美女美女秀| 欧美日韩大片一区二区三区| 欧美伊人久久久久久午夜久久久久 | 国产精品视频在线观看| 久久一区二区三区av| 一本色道久久88综合亚洲精品ⅰ| 国产欧美日韩亚洲| 欧美国产日韩精品| 欧美一区二区三区视频在线观看| 亚洲激情综合| 国产欧美一区二区三区另类精品 | 国模套图日韩精品一区二区| 欧美日本免费| 久久精品视频导航| 亚洲深夜福利| 在线观看国产成人av片| 国产精品欧美日韩一区二区| 欧美成人国产va精品日本一级| 午夜激情一区| 亚洲精品综合在线| 一区二区三区在线免费观看| 国产精品久久二区二区| 欧美大秀在线观看| 久久国产精品一区二区| 亚洲少妇自拍| 亚洲国产乱码最新视频| 国产日本欧美视频| 欧美日韩人人澡狠狠躁视频| 久久资源在线| 欧美在线一区二区| 亚洲一区久久| 日韩午夜电影av| 亚洲国产高清高潮精品美女| 国产一区二区三区精品久久久 | 狠狠入ady亚洲精品经典电影| 国产精品va在线播放| 欧美激情一区三区| 久久字幕精品一区| 久久精品国产综合| 午夜精品福利一区二区三区av | 亚洲一区二区三区成人在线视频精品| 亚洲大片免费看| 国内精品嫩模av私拍在线观看| 国产精品网曝门| 国产精品v日韩精品| 欧美日本亚洲视频| 欧美黑人国产人伦爽爽爽| 久久在线精品| 久久久成人精品| 久久av免费一区| 性欧美精品高清| 亚洲欧美另类中文字幕| 亚洲无吗在线| 一区二区三区精品久久久| 亚洲美女中文字幕| 亚洲精品一区二区三区av| 亚洲高清在线视频| 亚洲第一久久影院| 136国产福利精品导航网址应用| 韩国女主播一区二区三区| 国产日韩在线一区二区三区| 国产精品主播| 国产精品中文字幕在线观看| 国产精品区二区三区日本| 国产精品久久久久国产精品日日| 欧美日韩在线播放三区四区| 欧美日韩精品免费观看| 欧美日韩精品一区二区| 欧美日韩免费在线| 欧美色另类天堂2015| 国产精品www| 国产精品一区二区久久久|