精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

挑把趁手的兵器 | VSCode配置C/C++學(xué)習(xí)環(huán)境

開發(fā) 開發(fā)工具
擁有一套自己精心配置的編程工具,可以幫助計算機(jī)新人更快地走進(jìn)代碼的世界,提高對編程、對學(xué)業(yè)的興趣。

本文經(jīng)自動駕駛之心公眾號授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。

很多大學(xué)的計算機(jī)專業(yè)用的入門語言都是C語言,通常老師會給學(xué)生指定一款I(lǐng)DE來進(jìn)行程序的編寫,比如vc++6.0、Code::Blocks、Dev c++,可是這些IDE大都比較老舊,用起來有很多不順暢的地方,而且界面粗糙,一點都沒有印象中程序員該有的那種炫酷的感覺,所以尋找一款現(xiàn)代化的、功能強(qiáng)大的編輯器/IDE對于一些人來說還是很有必要的。

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

擁有一套自己精心配置的編程工具,可以幫助計算機(jī)新人更快地走進(jìn)代碼的世界,提高對編程、對學(xué)業(yè)的興趣。

目前網(wǎng)上有大量的關(guān)于vscode的文章和教程,但我沒有找到一篇細(xì)致的、面向小白的、搭建語言學(xué)習(xí)環(huán)境而非實際開發(fā)環(huán)境的教程,很多教程只是寫了怎樣配置,卻沒有寫為什么要這樣配置,我自己搞清楚其中種種后決定記錄下來。

為什么是VSCode?

VSCode是微軟出品的輕量級編輯器,定位是文本編輯器,開源,免費,海量插件,外觀出色,簡潔流暢,支持眾多編程語言,支持三大操作系統(tǒng)Windows、Linux、MacOS。總之,這是一款足夠強(qiáng)大和優(yōu)雅的編輯器,你值得擁有

與VScode(Visual Studio Code)名字相像的VS(Visual Studio)是微軟的IDE,而VScode是編輯器,兩者定位不同,一個藍(lán)色一個紫色,不要搞混了。
我的環(huán)境是windows10, linux和mac os可能不適用,但如果你是小白的話,我認(rèn)為其中很多內(nèi)容還是很有參考意義的
本文以C語言為例,C++同理,涉及到不同的地方有標(biāo)注

讓我們開始這場vscode的配置之旅

Step 0 基本概念

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

在這篇文章中,我會盡量解釋清楚每個對你來說可能陌生的東西,不過仍然有可能會有你不明白的地方,網(wǎng)上查一下就好。

最一開始,你應(yīng)當(dāng)了解如下概念:

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

首先用文本編輯器編寫源代碼 -> 編譯源代碼 生成目標(biāo)代碼-> 將目標(biāo)代碼與其它代碼(如庫函數(shù)代碼、標(biāo)準(zhǔn)啟動代碼)鏈接起來 -> 生成可執(zhí)行代碼

  • 區(qū)分編輯器、編譯器、IDE:

編輯器就是處理文本(源碼)的程序,寫代碼寫的就是文本,編輯器可能提供智能提示、代碼高亮等輔助功能,但不負(fù)責(zé)源碼到二進(jìn)制文件的操作;

編譯器就是負(fù)責(zé)將源碼文本翻譯成計算機(jī)能夠理解和執(zhí)行的二進(jìn)制文件的程序;

集成開發(fā)環(huán)境(IDE,Integrated Development Environment )是用于提供程序開發(fā)環(huán)境的應(yīng)用程序,包括了代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具。集成了代碼編寫、分析、編譯、調(diào)試等一整套工具鏈。

  • 什么是搭建環(huán)境:

vscode定位代碼編輯器,不是IDE,不包含編譯功能,因此需要我們自己安裝編譯器、調(diào)試器等編譯器套件,并使兩者有效的配合起來,以實現(xiàn)快捷操作。把這一整套工具鏈整合到一起的過程就是我們所說的搭建環(huán)境。

ok,到這里,我們就清楚要做什么了:獲取編輯器 -> 獲取編譯套裝(編譯器、調(diào)試器、頭文件庫等) -> 做好兩者之間的溝通工作(配置文件)

Step 1 下載安裝

兩個東西:編輯器和編譯套裝

編輯器就是我們的vscode了,到官網(wǎng)

Visual Studio Code - Code Editing. Redefined code.visualstudio.com/

下載安裝:

雙擊打開下載好的程序進(jìn)行安裝,安裝到默認(rèn)位置或者你自定義的位置,安裝過程中注意這個界面:

這幾個選項建議全部勾上。

然后是編譯套裝

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

因此,我們最終下載安裝的是MinGW-w64

下載地址:

mingw-w64 sourceforge.net/projects/mingw-w64/files/
進(jìn)去后往下滑,找到這個:

下載下來后是一個壓縮文件,將它解壓縮(解壓縮軟件推薦Bandizip)得到mingw64文件夾,然后把它拖動到一個合適的位置(或者直接解壓縮到這個位置),地址中不要有中文,推薦C:\Program Files

你可以打開bin目錄看下,里面有很多后綴名是.exe 的可執(zhí)行程序,這些就是開發(fā)時所需的工具,如:gcc.exe 是C語言程序的編譯器,g++.exe 是C++語言的編譯器,gdb.exe 是用來調(diào)試程序的 debug 工具。

還有一些頭文件也里面,如stdio.h的位置是C:\Program Files\mingw64\x86_64-w64-mingw32\include

然后,為了讓程序能訪問到這些編譯程序,需要把它們所在的目錄(我這里是C:\Program File\mingw64\bin,點擊地址欄進(jìn)行復(fù)制)添加到環(huán)境變量Path中

環(huán)境變量是 Windows 系統(tǒng)中用來指定運行環(huán)境的一些參數(shù),它包含了關(guān)于系統(tǒng)及當(dāng)前登錄用戶的環(huán)境信息字符串。當(dāng)用戶運行某些程序時,系統(tǒng)除了會在當(dāng)前文件夾中尋找某些文件外,還會到環(huán)境參數(shù)的默認(rèn)路徑中去查找程序運行時所需要的系統(tǒng)文件。

用windows的搜索功能(快捷鍵是Windows徽標(biāo)鍵+S)搜索環(huán)境變量

打開它

然后一路確定回去。

現(xiàn)在驗證一下,搜索打開cmd命令提示符,輸入gcc --version(中間有空格),按回車,看到如下信息 :

圖片

說明gcc安裝成功。

現(xiàn)在重啟一下電腦。

好了,我們的電腦里已經(jīng)有了這兩個東西了,他們是從不同的地方下載的,安裝的位置也不同,目前兩者之間還沒有任何聯(lián)系,接下來,我們應(yīng)該去搭建起他們之間的橋梁了,不過別著急,咱們先來了解一下文件結(jié)構(gòu)。

Step 2 文件結(jié)構(gòu)

文件結(jié)構(gòu)就是你組織文件夾、文件,決定他們怎樣嵌套、怎樣從屬的方法。

這一步是區(qū)分搭建的是語言學(xué)習(xí)環(huán)境還是實際項目開發(fā)環(huán)境的關(guān)鍵。

這兩者有什么區(qū)別呢?想想你寫hello world時是怎樣寫的,你寫了一個單文件,只有一個.c文件,然后你按下綠色三角進(jìn)行編譯運行生成.exe可執(zhí)行文件,語言學(xué)習(xí)環(huán)境大都是這樣的單文件編譯運行調(diào)試,或者是涉及到簡單的幾個頭文件和源文件的組合這樣的多文件結(jié)構(gòu)。而實際項目開發(fā)呢,實際中的一個小項目的目錄結(jié)構(gòu)可能長這樣:

我們的語言學(xué)習(xí)環(huán)境不是這樣的,我們用不到lib、build、makefile等文件夾/文件,我們的目錄結(jié)構(gòu)應(yīng)當(dāng)方便我們新建一個單文件,然后編譯調(diào)試,這些文件還應(yīng)當(dāng)在一起以方便查看和管理

具體怎么操作:

建議把代碼都組織在一個地方,以方便管理。以我為例,我在C盤根目錄建了一個名叫Codefield的文件夾,我所有代碼相關(guān)的東西都組織在這里面。

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

圖片

今后,涉及到其他代碼相關(guān)的東西時,你就可以在Codefield文件夾下組織了,比如再學(xué)一門C++語言時,建一個CODE_Cpp文件夾;玩leetcode刷算法的時候,建一個Leetcode文件夾;從github克隆別人的項目時,建一個Github文件夾;自己做項目時,建個Projects文件夾……

現(xiàn)在,讓我們看一下工作區(qū)文件夾,以C_Single為例,這其中的文件結(jié)構(gòu)又該怎么組織?(這一步你不需要建文件,弄明白結(jié)構(gòu)就好)首先要有一個.vscode文件夾(這是vscode的配置文件所在處,下一步會詳細(xì)講),然后就是我們的源文件,在學(xué)習(xí)過程中,通常會寫很多的源文件,把他們?nèi)言谝黄痫@然不夠優(yōu)雅,我們對這些源文件進(jìn)行一下分類,比如按章節(jié)分:

或者按類型分:

具體怎么分可以看你的學(xué)習(xí)情況。還有一個問題,源碼編譯后會生成exe可執(zhí)行文件,它們放在哪里?和源文件放在一起的話,當(dāng)文件夾下文件多起來時會非常雜亂,因此我們選擇把exe文件統(tǒng)一放在bin文件夾下,這個bin文件夾不應(yīng)當(dāng)直接放在工作區(qū)文件夾下,這樣會造成不同的源碼分類文件夾下的文件都不能重名,于是我們在每一個分類文件夾下都建一個bin文件夾,最終效果如下:

exercise目錄下有個bin目錄,hello.c在exercise下

C_Mutile類似但有所不同,由于一組程序由多個文件構(gòu)成,我們把這C_Single中的單個源文件替換成文件夾就好,每個文件夾里面就是一組源文件,并且exe文件也放在其中,不需要單獨的bin目錄。

至此,你有了一個合適的文件結(jié)構(gòu),我們可以開始進(jìn)行 vscode 的配置了。

Step 3 vscode配置文件

這一步開始前,我們再來了解幾個概念。

命令行:命令行 或 命令行界面,是一種基于文本的用來查看、處理、和操作計算機(jī)上的文件和程序的工具。

終端/控制臺:普通用戶可以簡單的把終端和控制臺理解為:可以輸入命令行并顯示程序運行過程中的信息以及程序運行結(jié)果的窗口。 不必要嚴(yán)格區(qū)分這兩者的差別。

shell:終端自身并不執(zhí)行用戶輸入的命令,它只是負(fù)責(zé)把輸入的內(nèi)容傳送到主機(jī)系統(tǒng),并把主機(jī)系統(tǒng)返回的結(jié)果呈現(xiàn)給用戶。負(fù)責(zé)解釋執(zhí)行用戶輸入的命令并返回結(jié)果的,正是Shell,它是溝通用戶和系統(tǒng)內(nèi)核的中間橋梁。

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

圖片

然后輸入編譯命令 gcc -o hello hello.c(注意空格),按下回車,你會發(fā)現(xiàn)桌面多了hello.exe文件,這說明我們成功編譯生成了可執(zhí)行文件,然后再在命令行中輸入hello.exe運行程序 。

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

現(xiàn)在,打開vscode,發(fā)現(xiàn)全是英文,我們先裝個漢化插件:

然后搜索C/C++安裝這個插件,這是對語言的支持插件

重啟vscode,打開C_Single文件夾:

注意要 文件->打開文件夾 這樣打開,vscode中打開的根目錄是C_Single

然后新建.vscode文件夾(注意前面有個.),然后在里面新建tasks.jsonlaunch.json

打開的根目錄是C_Single

下面是這兩個文件的具體內(nèi)容,帶有詳細(xì)注釋,你要大致看一遍,看不太懂沒關(guān)系。復(fù)制粘貼到你的文件里,注意里面有一些路徑之類的東西需要你進(jìn)行修改,還有一點是這里的配置和上一步中提到的工作區(qū)下的文件結(jié)構(gòu)是嚴(yán)格一致的,必須那樣組織文件。

tasks.json

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

    ]
}

launch.json

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

到這里,差不多就已經(jīng)成功了,讓我們寫個簡單的hello程序來試一下編譯、運行、調(diào)試:

首先在C_Single下新建一個exercise文件夾,來組織源碼文件,在exercise下新建hello.c文件,然后在exercise下建一個bin文件夾(注意從屬關(guān)系,不要建錯了,在vscode中想在某個目錄下新建文件/文件夾要先點擊一下該目錄,再點擊新建按鈕),hello.c中輸入如下代碼:

#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保存,進(jìn)行如下操作:

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

圖片

沒有報錯,bin文件夾下多了hello.exe,編譯成功!

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

然后回到我們的hello程序頁面,按下F4,顯示如下:

圖片

輸入你的名字,按下回車,運行成功!

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

然后會出現(xiàn)調(diào)試工具欄,各按鈕功能如圖:

左側(cè)可以查看、監(jiān)控變量

我們使用單步調(diào)試按鈕,快捷鍵F11,單步向下執(zhí)行程序,黃色箭頭所指示行是現(xiàn)在未執(zhí)行、下一步將要執(zhí)行的語句,當(dāng)執(zhí)行到輸入語句時,黃色箭頭會消失,這時你在終端面板內(nèi)進(jìn)行輸入,然后按回車,黃色箭頭重新出現(xiàn),可以繼續(xù)向下執(zhí)行。

調(diào)試成功!

今后就可以新建源文件寫程序,F4一鍵編譯運行,F5一鍵開始調(diào)試

有沒有很激動? ^o^/

可能出現(xiàn)的問題

  • 中文亂碼

亂碼問題是由于文件編碼格式引起的,vscode默認(rèn)的編碼格式是UTF-8,而Windows的終端的默認(rèn)編碼是GBK,這就造成了中文會顯示成亂碼,解決辦法是生成程序時指定用GBK,我們的task里已經(jīng)指定了,所以理論上你不應(yīng)該出現(xiàn)這個問題

  • 找不到頭文件

正確添加了環(huán)境變量的話,不應(yīng)該出現(xiàn)這個問題

  • “終端將被任務(wù)重用,按任意鍵關(guān)閉終端”

按照我們在task中的設(shè)置,每次執(zhí)行一個task就會打開一個新的終端面板,你可以在下拉列表查看自己打開的面板:

如果你把task的"panle"屬性改成了"shared",所有的任務(wù)都用的這一個終端,vscode會提醒你“終端將被任務(wù)重用”,這句話并不是報錯,只是提醒,你無視它就好,而且在設(shè)置里還可以關(guān)閉這句提醒。

關(guān)于code runner
你可能在很多其他人的教程里見過它,這是一個第三方的插件,用它也可以實現(xiàn)編譯運行,原理也是代替你手動輸入命令行,也需要一定的配置。不過我覺得按照我的方法已經(jīng)能很簡單便捷地實現(xiàn)編譯運行調(diào)試了,沒必要再用這個插件。

簡單的多文件程序

我們已經(jīng)搞定了C_Single,多文件的C_Multiple的設(shè)置也類似,只需要改一下那兩個配置文件涉及到路徑的部分,文件如下,你可以對比一下:

多文件tasks.json

{
    "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++標(biāo)準(zhǔn)
            ],
            "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.json

{
    "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,注意對應(yīng)的文件結(jié)構(gòu)。

有一點要注意,在寫多文件時,包含自己寫的頭文件要用雙引號,而不是尖括號,例如#include "myHeader.h",雙引號表示先在當(dāng)前目錄下尋找頭文件。

你可以自己寫個簡單的多文件程序測試一下有沒有問題。

Step 4 更進(jìn)一步

vscode的一大優(yōu)點就在于插件生態(tài)豐富,通過插件可以擴(kuò)展很多功能。這里推薦幾個:

  • one dark pro

主題插件,好像是下載量最多的主題插件,整體配色比較和諧。(vscode在顏值方面真的很能打)

  • Material Icon Theme

一套精心設(shè)計的圖標(biāo),可以讓你的文件/文件夾更有辨識度

  • Code Time

可以多維度的記錄你在vscode上花的時間,可以用這個插件記錄你碼代碼的時間,比如你可以定個類似每天編程2小時之類的目標(biāo),督促激勵自己學(xué)習(xí)編程。

  • Power Mode

這是一個炫酷的插件,可以給你敲代碼的過程添加特效,效果炸裂,具體操作可以看插件詳情頁。

還有其他很多有用有趣的插件,你可以看看別人的推薦帖。

另外vscode還有其他很多功能,比如快捷鍵、小地圖、搜索查找替換、代碼片段、集成git等等,你可以慢慢探索。

不過新手階段,注意不要把時間全花在這些折騰上,工具只是工具,好好學(xué)習(xí)才是更重要的事,不要舍本逐末。

結(jié)束語

我們的旅程結(jié)束了,幸運的話,你現(xiàn)在已經(jīng)擁有了一個美妙的學(xué)習(xí)環(huán)境,你將vscode打磨成了一把趁手的兵器,它刀身優(yōu)美、刀口鋒利,打開,猶如戰(zhàn)士拔刀對敵,關(guān)閉,猶如戰(zhàn)士收刀入鞘,你擁有了在代碼世界中劈荊斬棘的利刃,運用它、揮舞它吧。

原文鏈接:https://mp.weixin.qq.com/s/o5arkq0kTsob9j5w8QmAlA

責(zé)任編輯:張燕妮 來源: 自動駕駛之心
相關(guān)推薦

2021-06-02 08:13:28

VscodeVisual stduC++

2010-01-27 14:00:50

CC++運行環(huán)境

2020-12-07 10:42:22

VScodeC++

2022-12-30 17:12:42

開發(fā)c++調(diào)試

2009-06-05 14:54:09

EclipseC++環(huán)境搭建

2020-07-07 10:55:01

C++C語言代碼

2010-01-28 17:10:33

C++

2010-01-15 16:25:48

學(xué)習(xí)C++

2010-01-15 19:28:59

C++

2010-01-15 09:58:38

C++ Builder

2021-03-29 15:19:59

人工智能機(jī)器學(xué)習(xí)技術(shù)

2010-01-13 10:45:44

Visual C++

2011-04-11 11:29:07

C++

2011-05-31 18:31:13

C++

2010-01-11 14:05:01

C++學(xué)習(xí)方法

2010-01-21 14:07:14

CC++聲明

2022-04-18 12:29:18

C++

2021-04-11 10:48:37

UbuntuC++Linux

2010-01-08 17:13:46

Visual C++環(huán)

2010-01-28 15:31:34

學(xué)習(xí)C++語言
點贊
收藏

51CTO技術(shù)棧公眾號

免费日本黄色网址| 国产视频精品网| 貂蝉被到爽流白浆在线观看| 超薄肉色丝袜脚交一区二区| 亚洲国产精品激情在线观看| 国产欧美日韩免费看aⅴ视频| 永久免费看片视频教学| 嫩呦国产一区二区三区av| 亚洲国产cao| 欧美一二三四五区| 国产麻豆精品一区| 欧美fxxxxxx另类| 亚洲国产高潮在线观看| 日韩 欧美 高清| 欧美私人网站| 激情久久五月天| 久久久久久久久久婷婷| 最新中文字幕视频| 日韩福利在线观看| 亚洲成人av电影| 日日噜噜噜噜夜夜爽亚洲精品| 国产美女无遮挡永久免费| 亚洲精品精选| 国产一区二区三区直播精品电影| 污网站在线免费| 成年网站在线视频网站| 日本一区二区免费在线观看视频 | 国产精品久久久久久久9999| 国产精品视频一区二区三| 久久免费视频66| 欧美久久婷婷综合色| 少妇人妻无码专区视频| h视频在线观看免费| 国产99精品国产| 国产精品激情自拍| 日韩黄色三级视频| 天天综合一区| 亚洲欧美日韩成人| 短视频在线观看| 久9re热视频这里只有精品| 日韩欧美国产麻豆| 尤物网站在线看| www欧美在线观看| 欧美日韩夫妻久久| 性chinese极品按摩| 我爱我色成人网| 色综合色狠狠天天综合色| 鲁一鲁一鲁一鲁一澡| 成人三级小说| 亚洲成人av在线电影| 日本人体一区二区| av手机在线观看| 亚洲高清免费视频| 97视频在线免费| sm在线观看| 午夜精品aaa| 久久精品国产sm调教网站演员| 免费毛片在线看片免费丝瓜视频| 亚洲激情一二三区| 嫩草影院中文字幕| 黄页在线观看免费| 天天色综合天天| 久草资源站在线观看| 成人免费看视频网站| 色综合久久久久久久久久久| 欧美日韩激情视频在线观看| 成人免费看黄| 欧美日韩免费一区二区三区| 亚洲va在线va天堂va偷拍| 国产美女视频一区二区| 精品免费国产一区二区三区四区| 欧美做受高潮中文字幕| 国产另类在线| 国产亚洲精品va在线观看| 久久成人小视频| 欧美区一区二| 2019中文字幕全在线观看| 久久99国产综合精品免费| 日本在线不卡视频| 亚洲一区二区免费在线| 天天摸夜夜添狠狠添婷婷| 91麻豆国产香蕉久久精品| 五月天色一区| 亚洲奶水xxxx哺乳期| 天天综合日日夜夜精品| 日本人视频jizz页码69| 国产精品免费精品自在线观看| 日韩一区二区三区精品视频| 亚洲少妇18p| 色喇叭免费久久综合| 欧美激情xxxxx| 日韩电影在线观看一区二区| 狠狠狠色丁香婷婷综合久久五月| 97视频资源在线观看| 深夜福利视频在线免费观看| 中文字幕欧美日韩一区| 97超碰在线视| 欧美与亚洲与日本直播| 日韩欧美国产系列| 日本人亚洲人jjzzjjz| 欧美阿v一级看视频| 国产97在线亚洲| www.国产欧美| 中文字幕欧美激情一区| 99色这里只有精品| 啪啪av大全导航福利综合导航| 日韩欧美视频在线| 成人性生交大片免费看无遮挡aⅴ| 亚洲一区 二区 三区| 国产成人精品免费视频| 精品国产伦一区二区三区| 欧美激情自拍偷拍| 成人性生活视频免费看| 国产日韩一区二区三免费高清| 日韩精品久久久久久福利| 加勒比婷婷色综合久久| 日本成人在线电影网| 狠狠色噜噜狠狠狠狠色吗综合| 毛片av在线| 91福利在线播放| 亚洲狠狠婷婷综合久久久久图片| 欧美国产免费| 国产精品专区第二| 色婷婷av一区二区三区之红樱桃 | 亚洲a∨精品一区二区三区导航| 日韩视频一区二区三区在线播放 | 国产精品成人一区二区三区吃奶| 国产极品久久久| 国产精品久久二区二区| 成人在线免费播放视频| 欧美黑人巨大videos精品| 欧美剧在线观看| 又骚又黄的视频| 久久久精品天堂| 国产人妻777人伦精品hd| 久久久久亚洲精品中文字幕| 色老头一区二区三区在线观看| 亚洲久久在线观看| 成人蜜臀av电影| 少妇一晚三次一区二区三区| 亚洲国产精选| 久久精品成人欧美大片古装| 姑娘第5集在线观看免费好剧| 91丨国产丨九色丨pron| 一女被多男玩喷潮视频| 国产成人精品福利| 久久久亚洲国产| 亚洲精品久久久久久久久久久久久久 | 在线不卡视频| 国产一区二区三区av在线| 日韩三级电影视频| 精品欧美一区二区在线观看| 久久99久久98精品免观看软件| 国产麻豆91精品| 久久久无码中文字幕久...| 激情综合五月| 久久久久久久久综合| 高清毛片aaaaaaaaa片| 亚洲成人动漫av| 久久精品国产亚洲AV熟女| 久久久蜜桃一区二区人| 日韩av电影在线观看| 欧美亚洲人成在线| 欧美高清视频在线| 五月婷婷伊人网| 色婷婷亚洲婷婷| 一本色道久久88| 国产乱码字幕精品高清av| 亚洲爆乳无码精品aaa片蜜桃| 都市激情亚洲欧美| 欧美中文在线免费| 午夜毛片在线| 精品三级av在线| 羞羞影院体验区| 国产欧美一二三区| 天堂av手机在线| 国产尤物精品| 久久影院理伦片| 91麻豆精品一二三区在线| 色综合男人天堂| 四虎影院在线域名免费观看| 欧美日韩一区二区三区视频| 青娱乐免费在线视频| 91免费视频大全| 在线观看国产福利| 影音先锋亚洲电影| 日韩久久在线| 亚洲国产视频二区| 国产成人精品久久亚洲高清不卡| www久久日com| 亚洲老头同性xxxxx| 国产精品久久久久久免费免熟| 亚洲综合在线免费观看| 欧美激情 一区| 成人免费福利片| 色婷婷一区二区三区av免费看| 亚洲无线一线二线三线区别av| 日本一区二区三区免费观看| 精品视频在线一区| 国产精品高清在线| 高潮在线视频| 久久精品国产久精国产思思| 午夜福利理论片在线观看| 69堂精品视频| 日韩欧美在线观看免费| 一区二区三区四区在线免费观看| 精品人妻一区二区三区视频| 国产一区二三区好的| av观看免费在线| 国产精品v欧美精品v日本精品动漫| 日韩精品一区二区三区色偷偷| 亚洲一二av| 国产精品一久久香蕉国产线看观看 | 一级黄色免费片| 日韩欧美在线一区| 久久9999久久免费精品国产| 中文字幕一区二区日韩精品绯色| 国产熟妇久久777777| 成人av中文字幕| 在线观看视频在线观看| 免费一级欧美片在线观看| 国产午夜伦鲁鲁| 亚洲精品美女91| 日韩精品一区二区在线视频| 999精品一区| 亚洲精品久久区二区三区蜜桃臀| 婷婷成人综合| 国产在线精品一区二区中文| 一级毛片精品毛片| 91精品天堂| 国产午夜久久av| 成人性生交大片免费看视频直播 | 亚洲二区中文字幕| www.狠狠干| 日韩精品中文字幕一区二区三区 | 真实新婚偷拍xxxxx| 欧美日韩一区二区免费视频| 成人午夜视频精品一区| 亚洲3atv精品一区二区三区| 精品少妇爆乳无码av无码专区| 亚洲欧美日韩国产另类专区| 999精品视频在线观看播放| 国产精品日产欧美久久久久| 欧美丰满老妇熟乱xxxxyyy| 国产丝袜美腿一区二区三区| 扒开jk护士狂揉免费| 久久美女艺术照精彩视频福利播放| 久久无码人妻精品一区二区三区| 2021中文字幕一区亚洲| av黄色在线免费观看| 日本一区二区在线不卡| 国产又粗又长又硬| 国产精品传媒在线| 国产真实乱在线更新| 亚洲欧洲综合另类| 九九热精品在线观看| 亚洲午夜久久久久| 日本在线观看视频网站| 舔着乳尖日韩一区| 啪啪小视频网站| 欧美男人的天堂一二区| 精品久久人妻av中文字幕| 亚洲高清久久久久久| 色视频在线观看| 亚洲性线免费观看视频成熟| 免费日本一区二区三区视频| 九九热这里只有精品6| 九色porny自拍视频在线观看| 国产91精品久久久久久| 性欧美hd调教| 91免费综合在线| 精品国产18久久久久久洗澡| 免费看成人片| 999国产精品999久久久久久| 50度灰在线观看| 国产精品久久国产愉拍| 五月婷婷丁香色| 国产91精品一区二区| 在线免费观看黄色小视频| 国产精品美日韩| 日本一区二区免费在线观看| 在线免费观看日本欧美| 国产口爆吞精一区二区| 亚洲国产成人av在线| 大地资源中文在线观看免费版| 久热在线中文字幕色999舞| 欧美激情网站| 成人淫片在线看| 欧美精品密入口播放| 亚洲一区二区三区在线观看视频| 国产一区二区三区四区三区四| 日韩亚洲在线视频| 国产精品亚洲第一区在线暖暖韩国| 国产麻豆xxxvideo实拍| 国产精品久久夜| 91午夜视频在线观看| 欧美肥胖老妇做爰| 欧美新色视频| 欧美二区在线播放| 欧美aaa级| 久久久www免费人成黑人精品| 天天影视天天精品| 激情内射人妻1区2区3区 | 国产美女在线精品免费观看| 成人免费看片39| 91专区在线观看| 国产成人丝袜美腿| 精品国产aaa| 欧美午夜视频一区二区| 亚洲av无码国产精品永久一区| 亚洲人精品午夜在线观看| 免费在线播放电影| 91色精品视频在线| 欧美高清在线| 久久久久久久久久久久91| 99国产精品国产精品毛片| 亚洲色婷婷久久精品av蜜桃| 日韩精品一级二级| 中文字幕 日本| 亚洲精品久久久蜜桃| 这里只有精品6| 亚洲人成网站777色婷婷| a级片在线免费| 91精品国自产在线观看 | 日韩国产高清污视频在线观看 | 2019亚洲男人天堂| 成人在线超碰| 成人在线视频一区二区三区| 国产综合色产在线精品| 国产破处视频在线观看| 色偷偷久久人人79超碰人人澡| 五月天激情婷婷| 午夜精品三级视频福利| 成人香蕉社区| 免费网站永久免费观看| 国产成a人亚洲| 欧美成人精品欧美一级| 欧美一级一区二区| 91精品久久| 91pron在线| 欧美激情五月| zjzjzjzjzj亚洲女人| 亚洲在线视频网站| 亚洲av无码乱码国产麻豆 | 日本妇女毛茸茸| 日韩午夜精品电影| 在线中文字幕-区二区三区四区| 亚洲一区二区在线| 欧美69wwwcom| 国产免费a级片| 精品久久久久久电影| 色网站在线免费观看| 国产精品v日韩精品| 成人在线视频免费观看| 中文字幕 日韩 欧美| 亚洲精品视频在线看| 高潮一区二区三区乱码| 96精品视频在线| 精品国产乱码久久久| 国产色视频在线播放| 亚洲人成7777| 特黄aaaaaaaaa真人毛片| 国模精品视频一区二区| 亚洲免费福利一区| 一区二区三区 欧美| 亚洲精品中文在线| 性猛交富婆╳xxx乱大交天津| 97视频色精品| 国产成人精品免费视| 欧美一级小视频| 天天综合天天做天天综合| 成人在线免费观看| 亚洲中国色老太| 国产精品久久久免费| 青青草自拍偷拍| 日韩精品一区二区三区swag| 麻豆国产在线| 影音先锋在线亚洲| k8久久久一区二区三区| 午夜视频网站在线观看| 欧美精品在线极品| 精品一区毛片| 黄色片子免费看| 一本色道久久加勒比精品| 毛片在线播放a| 精品欧美日韩在线| 麻豆成人久久精品二区三区红 | 欧美精品色综合| 麻豆理论在线观看| 中文精品一区二区三区| 成人黄色大片在线观看 | 亚洲成人av在线播放| 三上悠亚亚洲一区| 黄网站色视频免费观看| 久久精品人人做人人爽97| av加勒比在线| 国产精品96久久久久久| 伊人久久亚洲热| 四虎884aa成人精品| 亚洲人免费视频|