什麼是編譯器?
在編譯系統設計一書裡頭曾對編譯器(compiler)有這樣的說明:
程式語言對人及電腦來說,是描述計算過程的記號。如我們所知,這個世界依賴程式語言, 因為在所有電腦上執行的所有軟體都是用某種程式語言編寫的。但是,在程式可以執行之前,它首先需要翻譯成能夠被電腦執行的形式。
完成這項翻譯工作的軟體系統稱為編譯器(compiler)。
簡單地說,編譯器就是程式,它可以讀取某一種語言(原始語言, source language)編寫的程式,然後將程式翻譯成等同於另一種語言(目的語言)編寫的程式。
如果你的程式是像下面的C++程式:
int a, b, sum;
cin >> a;
cin >> b;
sum = a + b;
cout << sum << endl;
不管你看不看得懂這樣的程式,我只要跟你說電腦還是無法解讀的,他們需要用編譯器解譯成
00000 | 10011110 |
00001 | 11110100 |
00010 | 10011110 |
00011 | 11010100 |
00100 | 10111111 |
00101 | 00000000 |
這樣子的機器碼,編譯器實在是很偉大,也是你在寫程式之前必須配備好的。
所以在你開始設計C或C++程式之前,可以線上購買編譯器或是網路下載免費的軟體來編譯C或C++程式,如果你是使用Mac OS X、Linux、或是其他*nix變種的系統(像是Unix 或是FreeBSD),可能就有安裝好的編譯器像是gcc或g++可以使用。
編譯器術語
- 編譯 簡單地說,就是將原始碼檔案轉成執行檔,但嚴格地說,編譯是一種解譯的過程。
- 連結 將編譯過的程式碼轉成執行檔
- 建置 建置是指建立最後執行檔的過程(通常被簡稱為編譯),有工具可以幫忙減少建置過程的複雜度–像是makefiles。
- 編譯器 一般來說,編譯器指的是編譯器跟「連結器」
- 連結器 藉著連結產生可執行的程式
- 整合開發環境(IDE,Integrated Development Environment),結合文字編輯器跟編譯器的軟體,這樣你可以在IDE內直接編譯跟執行你的程式,IDE通常有能力幫你快速跳到編譯錯誤的地方。
了解編譯的過程
- 編譯和連結的過程 這文件主要說明當你編譯程式時究竟發生了什麼事,比上面討論的術語要更詳細一點。
- 處理編譯錯誤 在你的程式碼捕捉編譯器跟連結器的錯誤建議
- 了解編譯警告 學習編譯器警告是什麼,以及如何跟為什麼要修正他們
- 在C跟C++中宣告跟定義有什麼不同? 學習定義一個變數、類別或函式的區別–以及如何定義–以及為什麼它在你編譯或連結程式有問題時會有關係
命令列程式
命令列程式是使用者跟環境之間使用文字來溝通的程式,像是列印文字到螢幕上或是從鍵盤讀取輸入。
命令列程式很容易互動,在所有平台上幾乎都有可預期的行為,他們也容易用來實作,因此在學習程式語言的基礎時很有幫助:在下面的例子中有所有的命令列程式。
編譯命令列程式取決於你所使用的特定工具的方法。
對初學者來說要編譯C++程式就簡單的方法就是使用整合開發環境(IDE),IDE通常整合了幾個開發工具,包括文字編輯器跟直接編譯程式的工具。
這裡有一些如何使用不同IDE編譯跟執行命令列程式的操作:
IDE | 平台 | 命令列程式 |
---|---|---|
Code::blocks | Windows/Linux/MacOS | 使用Code::blocks編譯命令列程式 |
Visual Studio Express | Windows | 使用VS Express 2013編譯命令列程式 |
Dev-C++ | Windows | 使用Dev-C++ 5.11編譯命令列程式 |
如果你是使用有開發功能的Linux或是Mac環境,你應該能夠直接從終端機編譯任何的範例,只要在命令中加入C++11的旗標給編譯器:
編譯器 | 平台 | 命令 |
---|---|---|
GCC | Linux以及其他的… | g++ -std=c++0x 範例.cpp -o 範例程式 |
Clang | OS X以及其他的… | clang++ -std=c++11 -stdlib=libc++ 範例.cpp -o 範例程式 |
Borland | Windows | 可參考此文件編譯 |
- 編譯器
- 設定C和C++ Code::Blocks編譯器的初學者教學指南:如果你苦惱的是編譯器的使用,可以看看設定C和C++ Code::Blocks編譯器的初學者教學指南。
- Code::Blocks 13.12 繁體中文化:如果想要使用code block 中文的朋友可以繼續閱讀Code::Blocks 13.12 繁體中文化,這裡不會有code block中文亂碼的問題。
- 設定Dev-C++ 5.11和MinGW-w64, Windows上免費的C跟C++編譯器
- C跟C++的Apple XCode
- g++簡介
- 使用Microsoft Visual C++ 2010 Express編譯GTK+
- Eclipse+CDT+MinGW 安裝測試
- 編譯器gcc
- Code::Blocks 20.03的安裝設定及繁體中文化
1 則留言