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

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

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

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

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

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

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

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

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

為什么是VSCode?

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

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

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

Step 0 基本概念

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

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

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

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

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

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

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

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

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

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

  • 什么是搭建環境:

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

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

Step 1 下載安裝

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

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

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

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

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

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

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

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

然后是編譯套裝kXs28資訊網——每日最新資訊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 也已停止了更新。kXs28資訊網——每日最新資訊28at.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Step 2 文件結構

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Step 3 vscode配置文件

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

tasks.jsonkXs28資訊網——每日最新資訊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.jsonkXs28資訊網——每日最新資訊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程序來試一下編譯、運行、調試:kXs28資訊網——每日最新資訊28at.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

可能出現的問題

  • 中文亂碼

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

  • 找不到頭文件

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

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

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

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

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

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

簡單的多文件程序

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

多文件tasks.jsonkXs28資訊網——每日最新資訊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.jsonkXs28資訊網——每日最新資訊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,注意對應的文件結構。kXs28資訊網——每日最新資訊28at.com

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

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

Step 4 更進一步

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

  • one dark pro

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

  • Material Icon Theme

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

  • Code Time

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

  • Power Mode

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

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

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

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

結束語

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

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

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

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

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

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

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

標簽:
  • 熱門焦點
  • Find N3入網:最高支持16+1TB

    OPPO將于近期登場的Find N3折疊屏目前已經正式入網,型號為PHN110。本次Find N3在外觀方面相比前兩代有很大的變化,不再是小號的橫向折疊屏,而是跟別的廠商一樣采用了較為常見的
  • 紅魔電競平板評測:大屏幕硬實力

    前言:三年的疫情因為要上網課的原因激活了平板市場,如今網課的時代已經過去,大家的生活都恢復到了正軌,這也就意味著,真正考驗平板電腦生存的環境來了。也就是面對著這種殘酷的
  • 三言兩語說透設計模式的藝術-簡單工廠模式

    一、寫在前面工廠模式是最常見的一種創建型設計模式,通常說的工廠模式指的是工廠方法模式,是使用頻率最高的工廠模式。簡單工廠模式又稱為靜態工廠方法模式,不屬于GoF 23種設計
  • Automa-通過連接塊來自動化你的瀏覽器

    1、前言通過瀏覽器插件可實現自動化腳本的錄制與編寫,具有代表性的工具就是:Selenium IDE、Katalon Recorder,對于簡單的業務來說可快速實現自動化的上手工作。Selenium IDEKat
  • 最“俊美”淘寶賣家,靠直播和短視頻圈粉,上架秒光,年銷3000萬

    來源 | 電商在線文|易琬玉編輯|斯問受訪店鋪:Ringdoll戒之人形圖源:微博@御座的黃山、&ldquo;Ringdoll戒之人形&rdquo;淘寶店鋪有關外貌的評價,黃山已經聽累了。生于1985年的他,哪
  • 網紅炒股不為了賺錢,那就是耍流氓!

    來源:首席商業評論6月26日高調宣布入市,網絡名嘴大v胡錫進居然進軍了股市。在一次財經媒體峰會上,幾個財經圈媒體大佬就&ldquo;胡錫進炒股是否知道認真報道&rdquo;展開討論。有
  • 2納米決戰2025

    集微網報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領先地位的英特爾,甚至初成立不久的新
  • 2299元起!iQOO Pad明晚首銷:性能最強天璣平板

    5月23日,iQOO如期舉行了新品發布會,除了首發安卓最強旗艦處理器的iQOO Neo8系列新機外,還在發布會上推出了旗下首款平板電腦——iQOO Pad,其最大的賣點
  • OPPO K11搭載長壽版100W超級閃充:26分鐘充滿100%

    據此前官方宣布,OPPO將于7月25日也就是今天下午14:30舉辦新品發布會,屆時全新的OPPO K11將正式與大家見面,將主打旗艦影像,和同檔位競品相比,其最大的賣
Top 主站蜘蛛池模板: 安远县| 墨脱县| 文昌市| 延吉市| 锡林郭勒盟| 凌源市| 固始县| 吉林市| 河北省| 贺州市| 白山市| 远安县| 恭城| 瑞安市| 綦江县| 尤溪县| 宜宾市| 邢台市| 临泉县| 夹江县| 墨江| 吴桥县| 武陟县| 宁国市| 昭通市| 甘泉县| 麻栗坡县| 洛扎县| 惠东县| 桐柏县| 太仆寺旗| 当涂县| 乌兰察布市| 上饶县| 诸城市| 岚皋县| 鸡东县| 融水| 潢川县| 保山市| 抚州市|