- 相關(guān)推薦
C語言編譯器和IDE的選擇之間的關(guān)系
語言代碼由固定的詞匯按照固定的格式組織起來,簡單直觀,程序員容易識別和理解,但是對于CPU,C語言代碼就是天書,根本不認識,CPU只認識幾百個二進制形式的指令。以下是小編整理的C語言編譯器和IDE的選擇之間的關(guān)系,歡迎學習!
什么是編譯器
C語言代碼由固定的詞匯按照固定的格式組織起來,簡單直觀,程序員容易識別和理解,但是對于CPU,C語言代碼就是天書,根本不認識,CPU只認識幾百個二進制形式的指令。這就需要一個工具,將C語言代碼轉(zhuǎn)換成CPU能夠識別的二進制指令,也就是將代碼加工成 .exe 程序;這個工具是一個特殊的軟件,叫做編譯器(Compiler)。
編譯器能夠識別代碼中的詞匯、句子以及各種特定的格式,并將他們轉(zhuǎn)換成計算機能夠識別的二進制形式,這個過程稱為編譯(Compile)。
C語言的編譯器有很多種,Windows 下常用的是微軟開發(fā)的 cl.exe,Linux 下常用的是GUN組織開發(fā)的 GCC。
你的代碼語法正確與否,編譯器說了才算,我們學習C語言,從某種意義上說就是學習如何使用編譯器,讓編譯器生成 .exe 程序。
編譯器可以100%保證你的代碼從語法上講是正確的,因為哪怕有一點小小的錯誤,編譯也不能通過,編譯器會告訴你哪里錯了,便于你的更改。
選擇合適的IDE
實際開發(fā)中,除了編譯器等必須的工具,我們往往還需要很多其他輔助軟件,例如編輯器、調(diào)試器、文件管理等,這些工具通常被打包在一起,統(tǒng)一發(fā)布和安裝,例如 Visual C++ 6.0、Visual Studio、Dev C++、Code::Blocks、C-Free 等,它們統(tǒng)稱為IDE(Integrated Development Environment,集成開發(fā)環(huán)境)。
在 Linux 下使用GCC(GNU Compiler Collection,GNU編譯器套件)。GCC是GUN組織開發(fā)的自由軟件,除了支持C,還支持C++、Java、Objective-C等,它是Linux平臺編譯器的事實標準。
在 Mac OS X 下使用 Xcode。Xcode 是由Apple官方開發(fā)的IDE,支持C、C++、Objective-C、Java等,可以用來開發(fā)OS X和iOS上的應用程序。Xcode最初使用GCC作為編譯器,后來由于GCC的不配合,改用LLVM。
在Windows下,IDE的選擇是很糾結(jié)的事情:
1) Visual C++ 6.0(簡稱VC 6.0)是微軟開發(fā)的一款經(jīng)典的IDE,很多高校都以 VC 6.0 為教學工具來講解C和C++。但VC 6.0是1998年的產(chǎn)品,很古老了,在Win7下有各種各樣的兼容性問題,在Win8、Win10下根本不能運行。
2) Visual Studio(簡稱VS)是 Visual C++ 6.0 的升級版,增加了很多特性,支持了更多的語言,非常龐大,安裝包有2~3G,下載不便,而且會安裝很多暫時用不到的工具,安裝時間在半個小時左右。
另外,VS 安裝的組件眾多,不容易卸載干凈。如果你的計算機配置低,運行Visual Studio還會吃力。
3) C-Free、Dev C++、Code::Blocks 默認使用MinGW(GCC編譯器的Windows版本)或者Cygwin(Windows平臺上運行的Linux模擬環(huán)境),不是真實的Windows開發(fā)環(huán)境,但它們小巧、容易安裝和卸載。
在Windows下的大部分程序員都使用VS,不過考慮到初學者下載、安裝和運行VS的成本,本教程約定:在Windows下使用C-Free來運行C語言,必要時才講解VS或VC。
好在C語言的絕大部分內(nèi)容是通用的,不針對具體的編譯器,各位讀者也可以放心使用 Dev C++、Code::Blocks 等其他IDE,它們都是大同小異的,相信你肯定能觸類旁通。
C語言編譯器gcc命令如何操作步驟
C語言的應用范圍廣泛,具備很強的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,適于編寫系統(tǒng)軟件,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統(tǒng)開發(fā)。
Linux 系統(tǒng)中最重要的軟件開發(fā)工具是 gcc,在 Linux 系統(tǒng)中,c89、cc 和 gcc 這些命令基本上都指向系統(tǒng)的C語言編譯器,通常是GNU C編譯器,或都簡稱 gcc。在 UNIX 系統(tǒng)中,C 語言編譯器稱為 cc。實際上,gcc 能夠編譯三種語言:C、C++ 和 Object C(C 語言的一種面向?qū)ο髷U展)。利用 gcc 命令可同時編譯并連接 C 和 C++ 源程序,一般來說,C 編譯器通過源文件的后綴名來判斷是 C 程序還是 C++ 程序。在 Linux 中,C 源文件的后綴名為 .c,而 C++ 源文件的后綴名為 .C 或 .cpp。對于 C++ 程序,gcc 命令只能編譯 C++ 源文件,而不能自動和 C++ 程序使用的庫連接。因此,通?梢允褂 g++ 命令來完成 C++ 程序的編譯和連接,該程序會自動調(diào)用 gcc 實現(xiàn)編譯。本人一直都是在 Linux系統(tǒng)編譯 C程序的,就 gcc 命令行的作用記錄下來。
首先通過編寫、編譯和運行一個 HelloWorld 程序?qū)嵗_始
一、源代碼
/* hello.c */
#include
#include
int main(void)
{
printf("Hello World!");
return 0;
}
二、 編譯、鏈接和運行程序
#gcc -o hello hello.c
#./hello
Hello World!
#
命令選項的作用:
1. -o Place the output into
如:#gcc -o file file.c
-o 告訴編譯器將可執(zhí)行程序放在何處,如果沒有指定文件名稱,編譯器則會把程序放在一個名為a.out的文件里(a.out的含義是 assembler output,即匯編輸出)。
2. -c Compile and assemble, but do not link
如:#gcc -c file.c
-c 告訴編譯器僅把源代碼編譯為目標模塊(file.o)而跳過匯編和連接的步驟。在使用-c生成目標模塊后,就可以通過-o選項來生成可執(zhí)行文件。如:#gcc -o file file1.o file2.o 可以是多個目標模塊。
3. -l和-L
指示編譯器程序要鏈接的庫。其中-L要增加庫的搜索路徑。如:hello.so動態(tài)庫放在/usr/cprimer目錄下,那就是 -L/user/cprimer
4. -O
如:#gcc file.c -O2,
用來優(yōu)化程序用的。優(yōu)化程序,執(zhí)行速度可能也有所提高,從未真正測試過。
5. -include
-include 告訴編譯器需要包含頭文件,但一般情況下包含頭文件都在源碼里用#include xxxxxx實現(xiàn),一般很少用這個選項。
【C語言編譯器和IDE的選擇之間的關(guān)系】相關(guān)文章:
C語言編譯器和IDE選擇09-22
C語言編譯器和IDE的選擇06-30
C語言和C++之間的關(guān)系06-15
C語言編譯器gcc命令如何操作10-02
C和C++的關(guān)系解說10-12
C語言項目中.h文件和.c文件的關(guān)系詳解10-01
C語言:使用IDE之前需要了解的概念08-02
C語言編譯器gcc命令如何操作步驟10-23