2009-10-05 218 views
3

什麼是命令行編譯器?什麼是命令行編譯器?

+1

你的意思是「命令行編譯器」,而不是由一個IDE驅動的編譯器? – 2009-10-05 16:14:29

+0

我們不明白你的問題。你能更好地解釋,並且更準確嗎? – KLE 2009-10-05 16:15:37

+0

凡說,它可能意味着你在命令行調用編譯器,通過了解和是從一個IDE運行編譯器(可能是相同的編譯器)分型,在不同的命令行參數...加以區別,在用戶設置使用IDE的GUI而不是使用命令行編譯器的參數。 – ChrisW 2009-10-05 16:26:12

回答

8

如今,您傾向於在開發代碼的環境中工作。換句話說,你得到一個由編輯器,編譯器,鏈接器,調試器和許多其他奇特工具(代碼分析,重構等等)組成的IDE(集成開發環境)。

你從來沒有在所有輸入命令,寧願一個鍵序列像CTRLF5這將構建一個完整的項目給你。

早些時候並非如此。我們必須記住各種各樣的神祕命令才能將我們的源代碼轉換爲可執行文件。如此美麗的構造如下:

cc -I/usr/include -c -o prog.o prog.c 
cc -I/usr/include -c -o obj1.o obj1.c 
as -o start.o start.s 
ld -o prog -L/lib:/usr/lib prog.o obj1.o start.o -lm -lnet 

簡單,不是嗎?

它實際上是一個很大的飛躍,當我們開始使用的makefile,因爲我們可以隱藏在複雜文件中的所有這些神祕的命令,只需在命令行中執行make。它會消失併爲我們執行所有這些命令,並且僅在需要它的文件上執行。

當然,當今世界仍然需要命令行編譯器。以「無頭」模式(無GUI)運行諸如Eclipse之類的東西的能力允許您以批處理方式編譯所有東西,而無需與GUI本身進行交互。另外,無論Borland(或本週他們自稱的任何東西),還有微軟也免費提供命令行編譯器(微軟也免費提供Express版本)。

gcc也是一個命令行編譯器。它完成它的一項工作很好好,並留給其他應用程序來添加一個前端,如果人們需要這樣的事情。

不要誤解我的意思。我覺得整個IDE的是一個快速的代碼/調試周期一個絕妙的主意,但我發現,一旦我的應用程序已經達到了一定的成熟程度,我傾向於選擇他們的形式,我可以用vim編輯代碼和只需運行make即可生產最終產品。

4

命令行編譯器是從命令行運行的編譯器。

您在gcc filename.c輸入編譯文件(或類似的東西)。幾乎所有的編譯器都有一個命令行版本,許多編譯器都有GUI,你永遠不會看到命令行,但命令行仍然存在。比爾 - ķ10月5日在16:27

(比爾K高在評論一個很好的答案......在這裏,輕輕地複製馬克·哈里森編輯,設置爲社區維基以免讓代表。)