1. 程式人生 > >5.C語言編譯執行

5.C語言編譯執行

C語言編譯執行

在程式執行模式章節中,說到程式設計師編寫的程式碼並不能直接執行,在計算機的底層CPU中執行的是各種指令,程式碼必須經過處理後,變成CPU所能識別的指令,才能執行。程式碼在經過處理的過程比較繁雜,其中一個重要的部分就是編譯。C語言程式碼變為可執行檔案的過程比較複雜,可參考:C語言程式碼變為可執行檔案的完整過程

編譯器

我們編寫的程式碼是安裝人類的思考邏輯來寫的,比如數字的加減運算,人類的思考邏輯是使用十進位制的方式運算的,而計算機中只有二進位制數0和1,所有的人類所理解的資料都是轉換為0和1的組合來儲存在計算機中。可參考計算機的資料儲存模型

編譯的作用:
1. 利用編譯程式從源語言編寫的源程式產生目標程式的過程。
2. 用編譯程式產生目標程式的動作。編譯就是把高階語言變成計算機可以識別的2進位制語言,計算機只認識1和0,編譯程式把人們熟悉的語言換成2進位制的。

編譯的過程是使用相關的程式軟體來完成的。網路上有不少C語言編譯器軟體,讓人很難抉擇。那麼,C語言編譯器哪個好?這裡整理了幾款好用的C語言編譯器推薦給大家。

一、Dev-C++

Dev-C++ 是一個C++ 開發工具。它包括多頁面視窗、工程編輯器,在工程編輯器中集合了編輯器、編譯器、連線程式和執行程式。它也提供高亮度語法顯示的,以減少編輯錯誤。Dev-C++是一個Windows下的C和C++程式的整合開發環境。是學習C或C++的首選開發工具。這是一款整合開發工具,其內部是使用的MinGW來編譯C語言程式的。

二、mingw

MinGW是Minimalist GNU onWindows的簡稱,是指只用自由軟體來生成純粹的Win32可執行檔案的編譯環境。這是一款無編輯器介面的軟體,只能在CMD命令列中執行它的編譯命令,對於初學者來說,使用命令列手動編譯程式是必須要掌握的內容。所以,這裡推薦使用MinGW來編譯C語言檔案,結合Dev-C++的編輯器介面,可以說是一套最好的C語言初學者套件。

三、WIN-TC

初學C的一款比較好的軟體,也是學習C的一款比較官方標準的軟體
WIN-TC是一個turbo C2 WINDOWS平臺開發工具,最大特點是支援中文介面,支援滑鼠操作,程式段複製,為初學c語言、對高等程式設計環境不熟悉的同志們非常有幫助。很多學校把這個軟體當做C語言教學工具,但是該軟體只能執行單個C語言檔案,不能建立一個C語言專案,並且沒有程式碼提示。熟悉C語言的人基本都不會使用這個軟體來編寫程式。

四、Microsoft Visual stdudio

Visual Studio(VS) 是一套非常完備的工具和服務,這款軟體真的很強大,不管你用來開發網頁、客戶端、Android、IOS等都可以很好的應付。畢竟號稱宇宙最強的IDE,VS可不是吹牛的。VS的功能強大也決定了其安裝包的體量,完整功能的VS2015安裝下來可能要佔用了100GB空間,簡直是恐怖。

MinGW安裝

本課程中是用MinGW來編譯C語言程式,這裡介紹一下MinGW的安裝過程。

線上安裝

1.下載安裝程式 下載地址


2.MinGW安裝

執行

安裝到你想安裝的目錄下,點選Continue

3.安裝完成後,桌面上有一個:

4、這個是安裝器,需要線上下載安裝內容安裝,才會完成安裝

選擇需要安裝的元件,根據需要選擇你的元件。右鍵選擇“Mark for Installation”,之後選擇”Installation -> Apply Changes”。等待下載完成。

5、新增環境變數
把安裝根目錄下的bin目錄新增到系統環境變數,請看下面的環境變數配置。

離線安裝

1.下載MinGW離線安裝包

下載地址:點選進入下載
2.解壓檔案

3.新增環境變數
把安裝根目錄下的bin目錄新增到系統環境變數,請看下面的環境變數配置。

環境變數

把MinGW目錄下的bin目錄新增到系統環境變數path中。環境變數的配置方法可以參考環境變數的配置

環境變數配置好後,輸入gcc -v會列印gcc編譯器的版本號。
這裡寫圖片描述

編譯執行

編譯的作用使用把C語言程式碼轉換為可執行檔案,使用cc命令可以把C語言程式碼檔案(.c字尾的檔案)轉換為可執行檔案(.exe字尾的檔案)。用文字編輯器輸入以下程式碼儲存為a.c檔案,用來測試編譯和執行。

//a.c檔案
#include <stdio.h>
int main(){
  printf("你好,朋友");
  getchar();
}

在命令列中cd到這個檔案的目錄下,使用cc編譯該檔案

這裡寫圖片描述

編譯生成一個a.exe檔案,輸入a(或a.exe)執行這個檔案

這裡寫圖片描述

可以看到列印了“你好,朋友”,這就是用命令列進行編譯執行的過程。初學者要掌握使用這種手段編譯檔案的方式。不要急於使用整合開發工具來編譯。