国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

編譯器(Compiler)及C/C++編譯器安裝(c+安裝)

這篇具有很好參考價(jià)值的文章主要介紹了編譯器(Compiler)及C/C++編譯器安裝(c+安裝)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄
一、常用編程語言的編譯器(compiler)
概述
二、GCC、MinGW、MinGW-w64 、TDM-GCC、Cygwin、MSYS、MSYS2的區(qū)別
三、MinGW-w64編譯器套件下載及安裝
四、MinGW-w64安裝后,windows環(huán)境變量配置(設(shè)置)
五、編譯器的運(yùn)行及其與開發(fā)環(huán)境的關(guān)系、編譯器的來源

編譯器(Compiler)及c/c++編譯器安裝(c+安裝)

一、常用編程語言的編譯器(compiler)概述

? ? ? ?機(jī)器語言是一種計(jì)算機(jī)指令(instruction)的表達(dá),計(jì)算機(jī)根據(jù)這種指令語句能直接解讀(識(shí)別)并執(zhí)行,這種機(jī)器指令語句通常稱為機(jī)器碼(machine instruction statement),是通過高低電平(高電壓叫高電平,低電壓叫低電平)來表示1和0的二進(jìn)制。

? ? ? ?一條機(jī)器碼必須包括操作碼和地址碼(或稱為操作數(shù))兩部分。操作碼指出執(zhí)行操作的類型(比如:加、減、乘、除、傳送等),地址碼指出參與操作的數(shù)據(jù)和操作結(jié)果存放的位置。

? ? ? ?每個(gè)CPU都有一套指令集(instruction set),在CPU中表現(xiàn)為邏輯門電路。一條機(jī)器碼的操作碼實(shí)際就是對(duì)應(yīng)到了CPU指令集中的一條指令,也即對(duì)應(yīng)到了CPU中的邏輯門電路,因而,cpu能解讀(識(shí)別)這條機(jī)器碼(機(jī)器指令語句),然后, CPU會(huì)對(duì)該機(jī)器指令語句進(jìn)一步分解為最基本的動(dòng)作,以便計(jì)算機(jī)按最基本的動(dòng)作執(zhí)行,這個(gè)屬于最后的實(shí)施環(huán)節(jié)。因此,cpu對(duì)機(jī)器碼(機(jī)器指令語句)能直接解讀并執(zhí)行的,但cpu是不能解讀以二進(jìn)制存儲(chǔ)的代碼,因?yàn)檫@種二進(jìn)制不在它的指令集范疇里,無法產(chǎn)生識(shí)別和執(zhí)行。

? ? ? ? 機(jī)器碼(機(jī)器指令語句)與機(jī)器中的具體的操作、存儲(chǔ)地址密切相關(guān),是能被CPU直接解讀(識(shí)別)并執(zhí)行的(因?yàn)镃PU存在實(shí)現(xiàn)這些具體操作的邏輯門電路),因此,機(jī)器碼是編程語言的編譯器(Compiler,廣義上的稱呼)處理代碼的最終目標(biāo)。

? ? ? C和C++通過編譯器(Compiler)即可把代碼編譯成機(jī)器碼,計(jì)算機(jī)根據(jù)機(jī)器碼即可執(zhí)行,而Java、Python是把代碼先編譯成字節(jié)碼,然后再把字節(jié)碼編譯成機(jī)器碼并執(zhí)行,前者從整體上講只需要一次編譯,編譯完成后再執(zhí)行,后者相對(duì)獨(dú)立地進(jìn)行了兩次編譯(第二次是編譯和執(zhí)行)??梢姡惭bC語言或安裝C++不像安裝Java或Python,前者只需要安裝一個(gè)編譯器,就可以運(yùn)行程序,而后者需要安裝編譯器+虛擬機(jī),比如:python的解釋器就是由編譯器+虛擬機(jī)構(gòu)成。因此,C語言安裝或C++安裝與Java或Python安裝是存在很大差異的,這主要由兩者處理過程的特點(diǎn)決定了。

? ? ? ?但從廣義上講,Java或Python安裝的也是一種編譯器,只是這種編譯器比較特殊,它經(jīng)歷兩次相對(duì)獨(dú)立的翻譯,而且第二次實(shí)現(xiàn)一邊翻譯一邊執(zhí)行,正因?yàn)檫@個(gè)特點(diǎn),第二次的翻譯執(zhí)行稱為虛擬機(jī),而C或C++的編譯器從整體上講只有一次翻譯,翻譯完成后生成機(jī)器碼特點(diǎn)的文件,生成的這種文件與所在計(jì)算機(jī)系統(tǒng)密切相關(guān)(一個(gè)能在計(jì)算機(jī)上執(zhí)行的文件與這臺(tái)計(jì)算機(jī)的操作系統(tǒng)和硬件系統(tǒng)是密切相關(guān)的,與之相適應(yīng)才能執(zhí)行),因此,C或C++缺乏跨平臺(tái)性、可移植性,而Java或Python第一次編譯生成的字節(jié)碼,與所在計(jì)算機(jī)的系統(tǒng)不相關(guān),它只是對(duì)代碼的一次梳理,并不與計(jì)算機(jī)系統(tǒng)關(guān)聯(lián),在第二次翻譯執(zhí)行的時(shí)候才與計(jì)算機(jī)系統(tǒng)密切相關(guān),因此,Java或Python第一次編譯的字節(jié)碼形式確保了它們的跨平臺(tái)性(cross platform)、可移植性(portability),這也是它們的一種優(yōu)勢。

? ? ? ?任何編程語言的安裝,實(shí)際主要就是安裝一種對(duì)這種代碼語言具有翻譯能力的文件(簡稱編譯器),這種翻譯功能就是把代碼轉(zhuǎn)換為最終的機(jī)器碼,CPU然后根據(jù)機(jī)器碼執(zhí)行。其它附加的安裝更多的是為了給用戶提供便利,完全可以去掉這些附加的功能,僅用翻譯功能我們也能實(shí)現(xiàn)這些附加功能,只是這會(huì)考驗(yàn)我們的能力和占用我們更多的開發(fā)時(shí)間,因此,有的編程語言安裝會(huì)占用存儲(chǔ)空間很大,其實(shí)是增加了很多附加功能,比如:matlab,它提供了大量的計(jì)算工具,因?yàn)檫@種語言側(cè)重?cái)?shù)學(xué)計(jì)算。

? ? ? 只要我們寫的代碼符合c或c++規(guī)范,編譯器能把這些代碼翻譯成計(jì)算機(jī)能直接執(zhí)行的機(jī)器碼(機(jī)器指令),然后CPU依據(jù)這些指令執(zhí)行,從而實(shí)現(xiàn)程序的運(yùn)行。下面我們先了解幾款與c\c++編譯器有關(guān)的、可以在Windows平臺(tái)上支持GCC的軟件,再介紹C\C++編譯器的安裝。

二、GCC、MinGW、MinGW-w64 、TDM-GCC、Cygwin、MSYS、MSYS2的區(qū)別

? ? ? GCC(GNU Compiler Collection) ,GNU編譯器套件。GCC原名為GNU C語言編譯器(GNU C Compiler),只能處理C語言,經(jīng)過擴(kuò)展能夠支持C、C++、 Objective-C、 Objective-C++、Fortran、Ada、Modula-2和Go多種編程語言,所以改名GNU編譯器套件(GNU Compiler Collection)。GCC不完全支持Java、Python的編譯,但Java、Python底層的C實(shí)現(xiàn)會(huì)用到C編譯器。

? ? ? GCC的初衷是為GNU操作系統(tǒng)專門編寫一款編譯器,現(xiàn)已被大多數(shù)類Unix操作系統(tǒng)(比如:Linux、BSD、MacOS X等)采納為標(biāo)準(zhǔn)的編譯器。

? ? ? ?GCC在Windows平臺(tái)上的支持并不完善,缺乏兼容性,用GCC在Windows上開發(fā)應(yīng)用程序存在很多問題。下面幾款編譯軟件具有各自特點(diǎn),含有GCC且適合Windows平臺(tái)。

1、MinGW、MinGW-w64 、TDM-GCC

? ? ? ?MinGW、MinGW-w64 與TDM-GCC是基于GCC而適合Windows操作系統(tǒng)的編譯器套件(編譯器集成包)。

? ? ? ?MinGW將GCC移植到Windows上?,但僅支持32位應(yīng)用程序,MinGW-w64衍生于MinGW,不僅可以支持32位應(yīng)用程序,還可以支持64位。TDM-GCC是非官方組織提供及維護(hù)的編譯器套件,支持32位和64位應(yīng)用程序。

2、Cygwin、MSYS、MSYS2

? ? ? ?Cygwin、MSYS、MSYS2都是代表可以在Windows上運(yùn)行的環(huán)境,不是單純的編譯器套件,它們都支持Windows,因而,其內(nèi)置的GCC也可以在Windows平臺(tái)上使用。

? ? ? ?Cygwin是一個(gè)可以在Windows上運(yùn)行的?UNiX模擬環(huán)境(虛擬環(huán)境),它提供UNIX 模擬 DLL 以及在其上層構(gòu)建的多種可以在 Linux 系統(tǒng)中找到的軟件包(其中含有GCC),這使得GCC可以在Windows平臺(tái)上使用。

? ? ? ?MSYS(Minimal GNU(POSIX) system on Windows )是一個(gè)小型的可以在Windows上運(yùn)行的GNU環(huán)境。GNU的設(shè)計(jì)類似Unix,但它不包含具著作權(quán)的Unix代碼。POSIX為可移植操作系統(tǒng)接口(Portable Operating System Interface of UNIX,縮寫為 POSIX)。接口可以理解為不同組成部分銜接的約定。

? ? ? ?MSYS2是一個(gè)MSYS的獨(dú)立改寫版本,也是一個(gè)在Cygwin(POSIX) MinGW-w64基礎(chǔ)上產(chǎn)生的Windows 軟件。

? ? ? ?因此,MSYS、MSYS2也使得GCC可以在Windows平臺(tái)上使用。

三、MinGW-w64編譯器套件下載及安裝

? ? ? ?上面介紹了幾款可以在Windows平臺(tái)上支持GCC的軟件。我們可以根據(jù)自己的需求下載相應(yīng)的編譯軟件,下面表3-1提供了可在Windows平臺(tái)上運(yùn)行的常用的編譯軟件的下載地址。

表3-1在Windows平臺(tái)上支持GCC的常用軟件

GCC官網(wǎng)地址

http://gcc.gnu.org/

MinGW-w64官網(wǎng)地址

https://www.mingw-w64.org/

TDM-GCC官網(wǎng)地址

https://jmeubank.github.io/tdm-gcc/

Cygwin官網(wǎng)地址

https://www.cygwin.com/

MSYS2官網(wǎng)地址

https://www.msys2.org/

? ? ? ?MinGW-w64開源,且有活躍的開源社區(qū)維護(hù),這里,我們選擇安裝MinGW-w64編譯器套件。打開表3-1中MinGW-w64官網(wǎng)地址,如圖3-1所示。

安裝c語言編譯器,computer,c語言,c++,GCC,MinGW-w64,環(huán)境變量,編譯器套件,compiler編譯器

圖3-1? MinGW-w64官網(wǎng)地址

? ? ?點(diǎn)擊圖3-1中紅箭頭位置,在彈出的菜單中點(diǎn)擊Downloads選項(xiàng),進(jìn)入下載頁面(也即https://www.mingw-w64.org/downloads),該頁面的Pre-built toolchains and packages標(biāo)題下面是預(yù)構(gòu)建的工具鏈和軟件包,也即含有GCC/Mingw-w64的特定工具的整合包,而我們只需要下載MinGW-w64,可以下拉頁面到如圖3-2紅框的Sources位置。

安裝c語言編譯器,computer,c語言,c++,GCC,MinGW-w64,環(huán)境變量,編譯器套件,compiler編譯器

?圖3-2? MinGW-w64下載鏈接

? ? 點(diǎn)擊圖3-2紅箭頭所指的SourceForge內(nèi)鏈,進(jìn)入MinGW-w64下載頁面(也即https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/),如圖3-3所示。

安裝c語言編譯器,computer,c語言,c++,GCC,MinGW-w64,環(huán)境變量,編譯器套件,compiler編譯器

圖3-3? MinGW-w64下載頁

? ? ? ?圖3-3紅框中是不同時(shí)間、類型的MinGW-w64的源代碼(源碼)下載,紅色箭頭處為最近更新的MinGW-w64的源代碼(源碼),這些源碼不是安裝程序,因而是沒有bin文件夾的(bin文件夾有安裝后的可執(zhí)行文件,我們?cè)谂渲铆h(huán)境變量時(shí)需要用到這個(gè)文件夾)。

? ? ? ?我們需要使用MinGW-w64的可執(zhí)行文件用來產(chǎn)生編譯功能,因而我們需要下載MinGW-w64的安裝程序,安裝后即可獲得可執(zhí)行文件,下拉頁面到如圖3-4所示位置。注意,這里講的可執(zhí)行文件是指已經(jīng)被編譯處理過且能執(zhí)行的文件(也稱為機(jī)器碼文件或機(jī)器碼構(gòu)成的二進(jìn)制文件),上面提到的源碼是沒被編譯過的。

安裝c語言編譯器,computer,c語言,c++,GCC,MinGW-w64,環(huán)境變量,編譯器套件,compiler編譯器

圖3-4? MinGW-w64安裝程序

? ? ? ?圖3-4中①、②為最新版本的MinGW-w64,第①個(gè)紅框是在線安裝MinGW-w64,若訪問外網(wǎng)速度比較慢,可以選下載擇第②個(gè)紅框的壓縮包,這個(gè)壓縮包是MinGW-w64已生成的可執(zhí)行文件,解壓后即可用,當(dāng)然,不論哪種方式,都需要配置環(huán)境變量后MinGW-w64的可執(zhí)行文件才能在windows中運(yùn)行。

? ? ? ?這里我們選擇下載第二個(gè)紅框的壓縮包。在下載壓縮包之前我們需要了解圖3-4中第②個(gè)紅框壓縮包名稱中參數(shù)的含義,下面表3-2列出了其參數(shù)的代表的含義。

表3-2? MinGW-w64版本類型

參數(shù)類型

參數(shù)

說明

CPU架構(gòu)

x86_64

64

i686

32

操作系統(tǒng)接口協(xié)議

win32

開發(fā)windows的應(yīng)用程序

posix

開發(fā)Linux、Mac的應(yīng)用程序

異常處理模型

sjlj

版本低,可支持32位和64

seh

版本新,性能較好,只支持64

dwarf

版本新,性能較好,只支持32

? ? ? 根據(jù)表3-2,我們可以下載?x86_64-win33-seh這個(gè)版本,解壓后就是已經(jīng)安裝生成的可執(zhí)行文件,相當(dāng)于圖3-4中第①個(gè)紅框(MinGW-W64-install.exe)下載后在線安裝的結(jié)果。

? ? ? ?另外,上述表3-2中的參數(shù)實(shí)際也是圖3-4中第①個(gè)紅框(MinGW-W64-install.exe)下載后的在線安裝時(shí)的安裝選項(xiàng)設(shè)置,這里不再列舉第①個(gè)紅框下載后的安裝過程,其選項(xiàng)配置可參考表3-2中參數(shù)的含義。

四、MinGW-w64安裝后,windows環(huán)境變量配置(設(shè)置)

? ? ? ?環(huán)境變量是在操作系統(tǒng)中一個(gè)具有特定名字的對(duì)象,它代表了一個(gè)或者多個(gè)應(yīng)用程序所將使用到的信息。當(dāng)要求系統(tǒng)運(yùn)行一個(gè)程序而沒有告訴它程序所在的完整路徑時(shí),系統(tǒng)除了在當(dāng)前目錄下面尋找此程序外,還會(huì)到環(huán)境變量path中指定的路徑去找可運(yùn)行的對(duì)象。

? ? ? ?環(huán)境變量中的系統(tǒng)變量是對(duì)所有用戶有效,用戶變量是對(duì)當(dāng)前登錄的windows賬號(hào)有效,當(dāng)系統(tǒng)變量查找不到時(shí),會(huì)到當(dāng)前用戶變量中查找。另外,環(huán)境變量名稱是不區(qū)分大小寫的,比如:PATH和path,兩個(gè)名稱是一樣的。

? ? ? ?因此,為方便調(diào)用MinGW-w64編譯器軟件,我們需要配置環(huán)境變量(environment variable),把MinGW-w64安裝后的bin文件夾所在的路徑設(shè)置為環(huán)境變量的值,以方便調(diào)用可執(zhí)行文件。??

? ? ? ?上面我們是下載壓縮文件直接解壓MinGW-w64的安裝,若我們是下載的安裝程序(即圖3-4中第①個(gè)紅框)安裝,也需要設(shè)置環(huán)境變量(environment variable),但很多安裝程序在安裝時(shí)會(huì)提示設(shè)置環(huán)境變量。

? ? ? ? 下面我們介紹環(huán)境變量的配置(Configuration)。鼠標(biāo)右鍵電腦圖標(biāo)如圖4-1所示。

安裝c語言編譯器,computer,c語言,c++,GCC,MinGW-w64,環(huán)境變量,編譯器套件,compiler編譯器

圖4-1 電腦屬性

? ? ? ? ?在圖4-1菜單中單擊屬性,進(jìn)入圖4-2中的電腦設(shè)置界面。

安裝c語言編譯器,computer,c語言,c++,GCC,MinGW-w64,環(huán)境變量,編譯器套件,compiler編譯器

圖4-2 電腦設(shè)置

? ? ? ? 在圖4-2中單擊紅色箭頭處的高級(jí)系統(tǒng)設(shè)置,進(jìn)入圖4-3系統(tǒng)設(shè)置界面。

安裝c語言編譯器,computer,c語言,c++,GCC,MinGW-w64,環(huán)境變量,編譯器套件,compiler編譯器

圖4-3 系統(tǒng)屬性

? ? ? ? 在圖4-3中單擊紅色箭頭處的環(huán)境變量,進(jìn)入圖4-4環(huán)境變量界面。

安裝c語言編譯器,computer,c語言,c++,GCC,MinGW-w64,環(huán)境變量,編譯器套件,compiler編譯器

圖4-4 環(huán)境變量

? ? ? ?根據(jù)上面提到的環(huán)境變量的特點(diǎn),我們可以選擇圖4-4中紅框的系統(tǒng)變量Path變量,然后單擊紅色箭頭處的編輯,或雙擊Path變量,進(jìn)入圖4-5編輯環(huán)境變量界面。

安裝c語言編譯器,computer,c語言,c++,GCC,MinGW-w64,環(huán)境變量,編譯器套件,compiler編譯器

圖4-5 編輯環(huán)境變量

? ? ? ? ?在圖4-5中單擊紅色箭頭處的新建,進(jìn)入圖4-6環(huán)境變量界面。

安裝c語言編譯器,computer,c語言,c++,GCC,MinGW-w64,環(huán)境變量,編譯器套件,compiler編譯器

圖4-6 新建環(huán)境變量

? ? ? ?如圖4-6所示輸入MinGW-W64的安裝路徑,路徑應(yīng)該含有bin目錄,即一般為…\mingw64\bin。

? ? ? ? ?bin目錄有cpp.exe、gcc.exe、g++.exe、gdb.exe等可執(zhí)行文件,其中,cpp.exe是預(yù)處理器,g++/gcc.exe是編譯器,gdb.exe是調(diào)試器,as.exe 是匯編器,ld.exe是鏈接器。

? ? ? ?新建環(huán)境變量輸入完成后單擊確定,單擊所有的確定后,環(huán)境變量配置成功。在調(diào)用時(shí),當(dāng)未指明路徑時(shí)系統(tǒng)會(huì)自動(dòng)進(jìn)入該配置的位置匹配調(diào)用。

? ? ? ?上面配置完后,我們使用win+r快捷鍵(也即Windows+R)打開運(yùn)行窗口,輸入cmd并確定,打開cmd命令行窗口,在命令行窗口中輸入gcc -v,查看gcc的版本信息,從而可以確定gcc是否安裝并且環(huán)境變量配置成功,v可以理解為version的簡寫,如圖4-7所示為安裝成功且配置成功。

安裝c語言編譯器,computer,c語言,c++,GCC,MinGW-w64,環(huán)境變量,編譯器套件,compiler編譯器

圖4-7 gcc版本信息

? ? ? ?至此,MinGW-W64 install及環(huán)境變量配置完成,也相當(dāng)于c install(或c++ install)完成,在windows中可以使用編譯器進(jìn)行C/C++程序開發(fā)了。

五、編譯器的運(yùn)行及其與開發(fā)環(huán)境的關(guān)系、編譯器的來源

1、編譯器的運(yùn)行及其與開發(fā)環(huán)境的關(guān)系

? ? ? ?編譯器是由文件構(gòu)成,我們還需要工具運(yùn)行這些可執(zhí)行文件,也即調(diào)用編譯器(Compiler)進(jìn)行編譯,來實(shí)現(xiàn)程序開發(fā)的作用。cmd.exe是 Windows 系統(tǒng)的一種命令行操作工具,用戶可以通過輸入命令來完成各種各樣的系統(tǒng)或程序操作。

? ? ? ? 對(duì)于任何一門編程語言,只要安裝了這個(gè)編程語言的編譯器,我們可以用文本編輯器(txt文件)寫好代碼,然后保存為編程語言的格式(即把.txt后綴改為編程語言的后綴),可以通過cmd命令提示窗調(diào)用這個(gè)編程語言的編譯器運(yùn)行這個(gè)編寫好的代碼文件。上面我們安裝的MinGW-W64編譯器套件是適合windows平臺(tái)的,我們可以使用windows的命令提示符cmd.exe來運(yùn)行編譯器,進(jìn)行C/C++程序開發(fā)。

? ? ? ?cmd運(yùn)行C/C++程序代碼參見Windows的cmd運(yùn)行編譯器(cmd運(yùn)行c/c++、python等)。

? ? ? ?在windows中,除了上述CMD命令調(diào)用編譯器方法,我們還可以用集成開發(fā)環(huán)境(Integrated Development Environment,簡寫IDE)工具來運(yùn)行編譯器,進(jìn)行程序代碼開發(fā)。

? ? ? ?集成開發(fā)環(huán)境工具是帶有一整套可以幫助我們提高語言開發(fā)效率的工具(比如:代碼編輯、調(diào)試、語法高亮、智能提示(intellisense)等),可以提高項(xiàng)目開發(fā)、管理效率。在集成開發(fā)環(huán)境工具中設(shè)置好編譯器(也即調(diào)用編譯器)就可以實(shí)現(xiàn)基于該編譯器的程序代碼開發(fā),編譯器提供了編程語言的翻譯功能,集成開發(fā)環(huán)境工具僅是提供了開發(fā)程序的便利性的輔助作用,簡單地講,集成開發(fā)環(huán)境就是我們編程的輔助工具,方便我們編寫代碼,但真正實(shí)現(xiàn)編程語言的程序運(yùn)行的還是編譯器,集成開發(fā)環(huán)境會(huì)調(diào)用編譯器運(yùn)行程序。

? ? ? ?編程語言(C/C++、Java、Python、Matlab等)一般都是借助集成開發(fā)環(huán)境(IDE)來開發(fā),這樣可以提高編寫代碼的效率,有的編程語言有自帶的IDE,比如:python有自帶的IDLE工具,但是一個(gè)簡單的IDE,其操作有局限性,因而,一般使用其它IDE(比如:pycharm)進(jìn)行編寫代碼,matlab.exe啟動(dòng)的界面就是一個(gè)自帶的IDE(默認(rèn)調(diào)用matlab的編譯器),這個(gè)IDE功能比較全面,因而使用matab語言一般也是使用其自帶的IDE。

? ? ? ?VS Code代碼編輯器雖然定位為編輯器,實(shí)際也具有集成開發(fā)環(huán)境工具的基本功能,由于是免費(fèi)的,因而很受用戶青睞,可以用在C/C++、Java、Python等程序開發(fā)。我們也可以用VS Code工具進(jìn)行C/C++開發(fā),參見2023年最新VS Code安裝詳細(xì)教程及vs code配置。

? ? ? ?此外,在windows的powershell.exe命令行中也可以運(yùn)行編譯器,powershell.exe命令行的功能比cmd.exe命令行更強(qiáng)大,但當(dāng)powershell.exe中運(yùn)行生成的.exe文件一般需要在文件名前面增加.\才能運(yùn)行。

? ? ? ?編譯器(Compiler)需要cmd.exe、或PowerShell.exe、或IDE(集成開發(fā)環(huán)境)調(diào)用運(yùn)行,實(shí)際也是讓操作系統(tǒng)參與進(jìn)來,發(fā)揮操作系統(tǒng)的作用(計(jì)算機(jī)資源分配),從而順利實(shí)現(xiàn)程序的運(yùn)行。

2、編譯器的來源

? ? ? ?上面我們提到源代碼(源碼),也就是我們根據(jù)語言的規(guī)范寫的代碼,也是沒有編譯過的代碼,只有通過編譯器翻譯成機(jī)器碼后才能執(zhí)行。那么一種編程語言誕生后,它并沒有誕生編譯器,它是如何運(yùn)行的呢?最開始是借助其它編譯器來運(yùn)行,然后再根據(jù)這個(gè)語言寫一個(gè)編譯器源碼文件,讓其它語言的編譯器把這個(gè)語言寫的編譯器源碼文件編譯成可執(zhí)行文件,通過不斷完善,從而最終誕生這個(gè)語言的可執(zhí)行的編譯器(可執(zhí)行文件,也即一個(gè)由機(jī)器碼構(gòu)成的文件,計(jì)算機(jī)根據(jù)機(jī)器碼就可以執(zhí)行)。

? ? ? ?計(jì)算機(jī)誕生時(shí),最初的計(jì)算機(jī)功能很簡單,因而,最初的編譯器用人來擔(dān)任,把人寫的語句翻譯成機(jī)器語言,讓機(jī)器執(zhí)行。但隨著計(jì)算機(jī)功能的增強(qiáng),機(jī)器指令不斷增加,由人來實(shí)現(xiàn)翻譯工作,很容易出錯(cuò),而且工作繁瑣,人很難勝任,整個(gè)過程上講計(jì)算機(jī)的工作效率低,尤其當(dāng)出現(xiàn)標(biāo)準(zhǔn)的編程語言規(guī)范時(shí),就更需要一個(gè)能把編程語言翻譯成機(jī)器碼的自動(dòng)化操作。

? ? ? ?針對(duì)這種現(xiàn)狀,伴隨著由機(jī)器語言發(fā)展出匯編語言,計(jì)算機(jī)工作者開始用機(jī)器碼來實(shí)現(xiàn)一個(gè)編譯器,用來把匯編語言的源碼編譯(翻譯)成機(jī)器碼,讓機(jī)器執(zhí)行。通過這種方式讓匯編程序代碼能夠在機(jī)器上運(yùn)行,然后就可以用匯編語言編寫一個(gè)有關(guān)自身的編譯器源碼文件,并讓由機(jī)器碼實(shí)現(xiàn)的編譯器把這個(gè)匯編語言寫的編譯器源碼文件編譯成可執(zhí)行文件,再通過不斷完善,從而最終誕生這個(gè)匯編語言的可執(zhí)行的編譯器文件,這也就實(shí)現(xiàn)了用一種編程語言實(shí)現(xiàn)該語言自身的編譯器,這也稱為這種編程語言的自舉(Bootstrapping)。

? ? ? ?同理,當(dāng)其它語言誕生時(shí),可以借助匯編語言的編譯器生成一個(gè)該語言的可執(zhí)行的編譯器。比如:匯編語言→B語言→C語言,c語言可以通過匯編語言的編譯器實(shí)現(xiàn)自舉,生成c語言本身的編譯器,然后,c語言代碼可以利用自身的這個(gè)c編譯器實(shí)現(xiàn)編譯,翻譯成cpu可以執(zhí)行的機(jī)器碼,從而實(shí)現(xiàn)c語言代碼的運(yùn)行。

? ? ? ?C語言是比較接近機(jī)器底層,而又比較適合人閱讀的語言,由于接近機(jī)器底層,對(duì)硬件操作有優(yōu)勢,運(yùn)行速度快,因而,c語言自然得到用戶的肯定,c編譯器也是被其它語言引用比較廣泛的編譯器。

? ? ? ?因此,編譯器是由人、機(jī)器碼、匯編、c等一步步發(fā)展出來的,誕生的編程語言都是依靠已經(jīng)誕生的語言的編譯器來實(shí)現(xiàn)自舉(Bootstrapping),產(chǎn)生自身的編譯器。

2023年最新VS Code安裝詳細(xì)教程及vs code配置:

https://blog.csdn.net/thefg/article/details/131752996

Windows的cmd運(yùn)行編譯器(cmd運(yùn)行C/C++):

https://blog.csdn.net/thefg/article/details/132017498文章來源地址http://www.zghlxwxcb.cn/news/detail-731264.html

最后, 歡迎你點(diǎn)贊、收藏、關(guān)注!

到了這里,關(guān)于編譯器(Compiler)及C/C++編譯器安裝(c+安裝)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STM32 Keil5報(bào)錯(cuò)-*** Target ‘XXX‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which -安裝編譯器解決

    STM32 Keil5報(bào)錯(cuò)-*** Target ‘XXX‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which -安裝編譯器解決

    安裝的keil 版本是V5.38, 顯示缺少編譯器?Compiler Version 5\\\' *** Target \\\'MUSICPLAYER\\\' uses ARM-Compiler \\\'Default Compiler Version 5\\\' which is not available. 下載編譯器:? Arm Compiler 5.06 update 7 (build 960) ?下載地址:https://developer.arm.com/downloads/view/ACOMP5 Legacy Arm Compiler 5, 4.1, and RVCT (ACOMP5) https://developer.ar

    2024年04月11日
    瀏覽(43)
  • Linux安裝配置ARM交叉編譯器arm-linux-gnueabihf-gcc

    Linux安裝配置ARM交叉編譯器arm-linux-gnueabihf-gcc

    ARM交叉編譯器是一種用于在一種架構(gòu)(通常是x86或x86-64)上生成在另一種架構(gòu)(如ARM)上運(yùn)行的程序的工具。這種情況稱為交叉編譯,因?yàn)榫幾g器和相關(guān)工具在不同的體系結(jié)構(gòu)之間進(jìn)行交叉工作。 主要用途如下: 嵌入式開發(fā): ARM交叉編譯器通常用于嵌入式系統(tǒng)開發(fā),其中

    2024年02月01日
    瀏覽(30)
  • [linux]Ubuntu 18.04安裝arm-linux-gcc交叉編譯器的兩種方法

    [linux]Ubuntu 18.04安裝arm-linux-gcc交叉編譯器的兩種方法

    第一種:apt安裝法: Ctrl+Alt+T彈出終端,使用如下命令進(jìn)行arm-linux-gcc的安裝: ??使用如下命令進(jìn)行arm-linux-g++的安裝: ??如果要卸載時(shí)使用如下命令進(jìn)行移除,arm-linux-gcc的卸載: ??arm-linux-g++的卸載: ?第二種源碼安裝: 目前網(wǎng)上搜索發(fā)現(xiàn),最多人安裝的是4.4.3版本的

    2024年02月05日
    瀏覽(24)
  • Linux:編譯器 - gcc

    Linux:編譯器 - gcc

    GCC(英文全拼:GNU Compiler Collection)是 GNU 工具鏈的主要組成部分,是一套以 GPL 和 LGPL 許可證發(fā)布的程序語言編譯器自由軟件,由 Richard Stallman 于 1985 年開始開發(fā)。 gcc是GCC中的C語言編譯器,而g++是GCC中的C++編譯器。本博客只講解gcc,g++的語法和選項(xiàng)和gcc都是一致的。 gcc 編譯

    2024年04月14日
    瀏覽(22)
  • Linux GCC常用命令以及GCC編譯器

    GCC 是編譯工具,它的意思是 GNU C Compiler 。經(jīng)過了這么多年的發(fā)展,GCC 已經(jīng)不僅僅能支持 C 語言;它現(xiàn)在還支持 Ada 語言、C++ 語言、Java 語言、Objective C 語言、Pascal 語言、COBOL語言,以及支持函數(shù)式編程和邏輯編程的 Mercury 語言等等。而 GCC 也不再單只是 GNU C 語言編譯器的意

    2024年02月05日
    瀏覽(33)
  • 在 Ubuntu 18.04 x86_64 上面安裝 Linux-ARMv7 A/L GCC編譯器

    一鍵安裝??Linux-ARMv7A GCC編譯器:(平板、手機(jī)一般是) ########################### 輸入以下命令: 1、sudo apt update 2、sudo apt install gcc-arm-linux-gnueabi ? ? ?sudo apt install g++-arm-linux-gnueabi 3、arm-linux-gnueabi-gcc --version 一鍵安裝??Linux-ARMv7L GCC編譯器:(機(jī)頂盒一般是) 1、sudo apt update

    2024年02月22日
    瀏覽(25)
  • Ubuntu中安裝gcc編譯器

    Ubuntu中安裝gcc編譯器

    文章目錄 前言 一、gcc編譯器是什么? 二、使用步驟 1.Ubuntu安裝gcc編譯器 2.使用gcc編譯器生成可自行文件 在Ubuntu中是可以直接編譯C語言文件的,需要安裝gcc編譯器,在Ubuntu中默認(rèn)是沒有安裝gcc編譯器需要自己手動(dòng)安裝,安裝完直接就可以使用 build-essential就是gcc的安裝包,提

    2024年02月08日
    瀏覽(27)
  • Linux——gcc/g++編譯器

    Linux——gcc/g++編譯器

    目錄 I.Linux編譯器 1.gcc/g++編譯器 在C代碼生成可執(zhí)行程序的過程中,會(huì)有四個(gè)過程: 1預(yù)處理,2編譯,3匯編,4鏈接 Linux對(duì).c文件分辨進(jìn)行預(yù)處理,編譯,匯編三大步指令: 預(yù)處理指令: 編譯指令: 匯編指令: 接下來說一說鏈接過程: II.動(dòng)靜態(tài)鏈接? 一.動(dòng)態(tài)鏈接 二.靜態(tài)鏈接

    2024年02月04日
    瀏覽(59)
  • Linux編譯器gcc/g++

    Linux編譯器gcc/g++

    以gcc編譯 以g++編譯,但是此時(shí)會(huì)發(fā)現(xiàn)沒有g(shù)++這個(gè)指令,所有需要安裝它,安裝指令 yum install gcc gcc-c++ gcc和g++都會(huì)形成可執(zhí)行文件a.out gcc只能編譯c語言代碼,g++能編譯c/c++ 以c程序?yàn)槔瑏砜纯此鼜囊粋€(gè)文本類的c程序編譯成計(jì)算機(jī)可以認(rèn)識(shí)的二進(jìn)制程序它需要經(jīng)過四個(gè)階段 預(yù)

    2024年02月10日
    瀏覽(27)
  • 【Linux】編譯器-gcc/g++使用

    【Linux】編譯器-gcc/g++使用

    個(gè)人主頁 : zxctscl 文章封面來自:藝術(shù)家–賢海林 如有轉(zhuǎn)載請(qǐng)先通知 在之前已經(jīng)分享了 【Linux】vim的使用,這次來看看在云服務(wù)器上的編譯器gcc。 我們先寫一段簡單的代碼: 當(dāng)我們進(jìn)行編譯的時(shí)候: 發(fā)現(xiàn)根本就編譯不了。 這個(gè)是因?yàn)榫幾g器版本的問題: 查看編譯器的版

    2024年03月11日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包