App下載

C語言的編譯器有哪些?MinGW介紹!

W3Cschool小編 2021-09-02 17:46:17 瀏覽數(shù) (9173)
反饋

臨近開學,相信有一批好學的準計算機相關行業(yè)的小伙伴在暑假期間開始自學C語言了。憑心而論,小編覺得python更適合作為初學者第一次學習的語言,他的安裝配置以及語法各方面都比C語言易學。但C語言也有其學習的優(yōu)點,這不是本篇要討論的內容。今天小編要介紹的,是關于C語言的編譯器,以及其中一款比較出名的編譯器MinGW的安裝。

什么是編譯?

我們把人說的話,稱為自然語言。同理,機器與機器之間的交流,使用的就是機器語言。我們知道機器與機器之間的交流是通過導線為基礎,電流的變化傳遞的相關信息。通俗的講,電路中有兩種狀態(tài),一種是有電,一種是沒電。如果用數(shù)字0代表沒電,數(shù)字1代表有電1,那么連續(xù)的狀態(tài)變化,就能轉化為一串由0和1構成的信息串。機器與機器之間的交流,就建立在這樣的信息串上2

1. 這里的有電沒電是一種比較通俗的說法,實際上應該稱其為高電平,低天平。

2.這樣的信息串,又被稱為機器語言,在計算機中常見的兩個處理信息的結構中,內存負責將這樣的信息存儲下來,方法也很簡單,每個內存單元分別記錄響應的0和1,這就是內存的存儲過程,按一定的順序將這些0和1讀取出來,這就是內存的讀取過程。而CPU按一定的間隔讀取這些信息串(比如以64位計算機為例,他可以一次讀取64個這樣的信息串),這些信息串具有不同的效果,有些是指令,比如讀到某些串后它就執(zhí)行加法等等,這些是計算機組成原理的知識,有興趣可以前往相關手冊進行學習。

機器語言中的內容有一部分是固定的指令,我們通過一些助記符(比如ADD,JUMP等)來代替這些固定的指令,這就是匯編語言。匯編語言要運行前需要將這些固定的指令進行替換,這個過程我們稱其為匯編。

 匯編語言跟機器語言更為接近,人比較難以讀懂這樣的語言,所以這樣的語言被稱為底層語言,或者低級語言。我們之前說過,機器語言是跑在不同的機器上的,不同的機器存在著“方言”,也就是說不同的機器對同樣的信息串理解是不同的,這也就導致了不管是機器語言還是匯編語言,他只能跑在對應的機器上,在別的機器上需要重新編寫匯編代碼。

匯編并不是編程的好工具。1972年,丹尼斯·里奇開發(fā)出了C語言,這是一種比匯編語言更適合用來編程的語言(在當時確實是如此,但隨著時代的變革,后來者以更加易學和更加優(yōu)雅將前浪拍在了沙灘上),他通過一些符號來表述一個運算過程,這些符號就是代碼(c語言的代碼,后綴為.c或者.cpp,另外還有.h作為頭文件)。這些代碼對于人來說是比較易讀的,但對于機器來說是完全不可讀的,那么怎么將這些代碼變成可讀的呢?這就要介紹編譯器的存在了。

 C語言跟自然語言比較接近,而相對遠離了機器語言,這種人容易讀懂的語言被稱為高級語言。編譯就是將高級語言轉化為低級語言的一個過程。

補充:其實還有另一種轉化方式叫解釋,編譯和解釋的區(qū)別是:編譯一次性將所有的高級語言翻譯為低級語言,解釋一句一句的將高級語言解釋為低級語言。著名的解釋型語言有JavaScript,python。Java的字節(jié)碼在jvm上也是解釋執(zhí)行的。

什么是編譯器?

編譯器就是用來將高級語言轉化為低級語言的程序。

編譯

最流行的C語言編譯器有以下幾種:

  • GNU Compiler Collection 或稱 GCC(GCC編譯器的Windows版本被稱為MinGW)
  • Microsoft C 或稱 MS C(也叫MSVC)
  • Borland Turbo C 或稱 Turbo C

這些C語言版本不僅實現(xiàn)了ANSI C標準,而且在此基礎上各自作了一些擴充,使之更加方便、完美。


 GCC是類Unix操作系統(tǒng)(Linux,macOS,BSD等)所用的編譯器,MSVC是Windows所用的編譯器,編譯的結果不能混用,也就是說使用MSVC編譯的可執(zhí)行文件是不能在linux上運行的(另外linux的可執(zhí)行文件也不是.exe)。

怎么安裝和使用這些編譯器(Windows平臺下)?

MSVC只能在Windows平臺下安裝,安裝方式也是比較簡單的,直接安裝visual studio全家桶(舉幾個常見的例子,visual C++6.0,visual studio2010,visual studio2017都有該編譯器),就會附帶MSVC編譯器,一般來說直接使用VS全家桶就可以達到很不錯的學習效果,但如果你想要單獨使用代碼編輯器加編譯器的開發(fā)方式,可以參考這篇文章:VSCode配置C++環(huán)境的方法步驟(MSVC)

MinGW的安裝也是比較簡單的,如果使用codeblock的話有些版本是有自帶MinGW的,可以直接使用這些MinGW,在這篇文章VSCode配置C++環(huán)境的方法步驟(MinGW)中兩款工具也都提供了MinGW的下載,想單獨使用代碼編輯器+編譯器的開發(fā)方式也可以直接參考該文章。接下來我們講講如何單獨安裝MinGW。

下載鏈接:sourceforge

下載后直接按照要求安裝即可。

 注意,下載的是安裝器,安裝器本體比較小,需要聯(lián)網(wǎng)獲取MinGW的本體,整體安裝大概需要400M到600M左右,版本不同大小也不同。

安裝完成后可以在安裝路徑下找到MinGW64的文件夾,將其中的bin文件夾添加到環(huán)境變量中即可。

安裝文件夾

 囿于篇幅原因,MinGW的詳細安裝部分小編放在單獨的一篇文章中介紹,小伙伴可以前往:如何安裝MinGW?GCC編譯器安裝教程!查看

編輯代碼

使用記事本或者代碼編輯器寫一段程序(這里不推薦使用記事本,小編使用vscode)。

源代碼

首先通過命令行進入你準備要創(chuàng)建文件的目錄下進行后續(xù)操作。

編譯過程

編譯過程分為四個步驟:預處理、編譯、匯編、鏈接。

1.預處理

預處理主要處理源文件中的“#include”、“#define”等預處理命令。

預處理主要完成的工作有:

(1)刪除#define,展開宏;

(2)處理條件編譯指令,預處理程序先判斷條件,在根據(jù)條件修改源代碼;

(3)刪除注釋;

(4)添加行號,以及文件名標識,便于調試

(5)刪除“#include”,插入相應的頭文件;

使用?g++ -E test.cpp -o test.i??命令,預處理后得到?test.i?文件

預處理

2.編譯

生成匯編代碼的過程,使用命令?g++ -S test.i -o test.s.?生成匯編文件?test.s?文件,當然直接從?test.cpp?文件得到匯編文件也可以。

編譯成匯編

3.匯編

將匯編代碼轉化成機器指令,生成目標二進制代碼。

使用命令?g++ -c test.s -o test.o?生成?test.o?文件

匯編轉化為機器指令

4.鏈接

通過鏈接庫文件,將目標文件轉化成可執(zhí)行文件

使用命令?g++ test.o -o test.exe?

鏈接

當然,一般情況下,可以直接使用?g++ test.cpp -o test? 就可以生成可執(zhí)行程序了。

運行程序

最后使用命令test.exe,即可運行程序。

命令行運行程序

也可以直接點擊exe文件進行運行。

點擊運行

編譯器使用小結

通常情況下我們并不會手動編譯,而是借助代碼編輯器的插件功能(比如上面介紹的vscode)或者IDE集成化項目構建,但是手動編譯的技術也是相當重要的,小伙伴們應該學習一下。

總結

以上就是關于C語言編譯器的全部介紹,希望能對各位小伙伴有所幫助。


C C++

2 人點贊