c和c編譯器
1.
GCC
大名鼎鼎的GNU的C/C++/Obj-C編譯器,
當前版本是2.8.1,
但據說與2.7.*有兼容性
問題.
而使用較廣的是gcc
2.7.2系列,
如RedHat5中帶的就是gcc
2.7.2.3
有時候在Cyrix上用gcc會有些問題,
因此有一套針對Cyrix特點的gcc
2.7.2.3
我這里有RedHat5的rpms
ftp://166.111.68.98/pub/Warez-CD/Huricane-contrib
(Cyrix
2.7.2.3
&
2.8.1)
其基本結構就是一個front
end和back
end,
/usr/bin/gcc
就是個front
end,
其kernel東西都放在
/usr/lib/gcc-lib下面,
cpp是C預處理器,
cc1*的1M多的就是編譯器的核心模塊了
cc1
C
compiler
cc1plus
C++
compiler
cc1obj
Object-C
compiler
但gcc並沒有集成Fortran的compiler,
一般要用f2c轉成C後才用gcc編譯
好象也還有個g77
Fortran
compiler吧?
gcc的不斷發展完善使許多commercial
compiler都相形見絀,
那當然,
gcc/emacs
都由GNU創始人Richard
Stallman手創,
是GNU的旗艦產品,
質量當然沒得說了:-)
由於
Unix平台的高度可移植性,
gcc幾乎在各種常見的Unix平台上都有,
即使是
Win32/DOS也有gcc的port.
比如說該死的Solaris普通版本連compiler都沒有,
也
就只好用gcc了...
2.
EGCS(Experimental/Enhanced
GNU
Compiler
System)
這是gcc的發展方向,
把fortran等編譯器集成進來,
也許還會有Pascal?
它的構造很清晰,
把對gcc的各種改進/port都集成回去.
如gcc
2.7系列據說是
沒有對Pentium進行優化的,
而egcs則把pgcc對Pentium的一些優化集成進去了
現在gcc的開發工作主要就是egcs,
由Cygnus公司領導(?),
這Cygnus公司還是很
不錯的,
還出了GNU-Win32,
SourceNavigator等,
是GNU的堅實擁護者:-))
http://egcs.cygnus.com
包括了C/C++/Obj-C/Fortran
編譯器,
當前最新版本1.0.2,
還在不斷開發中
昨天download發現KDE
Beta4都用egcs編譯了
:-)
Fortran集成進來後在/usr/lib/gcc-lib下又多了個f771的back
end,
當然
還是g77/f77
編譯
我這里有egcs
1.0.2
的rpm
在RH5-CD/collect下面
3.
PGCC(Pentium
GCC)
http://www.gcc.ml.org
針對Pentium
CPU進行了編譯器優化的compiler
pgcc據說用JPEG壓縮解壓縮測試最快可比gcc快
30%!
新版的pgcc都是基於egcs的,
以一個patch的形式release
B. C語言和編譯器的關系
c語言,只是一個程序設計語言。不是理論,不是思想,不是體系結構。只是語言。
C語言的語法不一致並不是編譯器導致的。而是語言自然發展導致的。編譯器只是支持某種標準的c語言。
並且c語言現在也有標准了,ansi c。不同語法的問題可以不用關心。因為你基本上接觸不到另外一種語法。而且越新的編譯器,支持越好。
C. c語言編譯器是一種()
c語言編譯器是一種系統軟體。
C語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護。C語言的表現能力和處理能力極強。它不僅具有豐富的運算符和數據類型,便於實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。由於C語言實現了對硬體的編程操作,因此C語言集高級語言和低級語言的功能於一體。既可用於系統軟體的開發,也適合於應用軟體的開發。此外,C語言還具有效率高,可移植性強等特點。
(3)c和c編譯器擴展閱讀:
最流行的C語言編譯器有以下幾種:
1、GNU Compiler Collection 或稱GCC
2、Microsoft C 或稱 MS C
3、Borland Turbo C 或稱 Turbo C
這些C語言版本不僅實現了ANSI C標准,而且在此基礎上各自作了一些擴充,使之更加方便、完美。
D. 目前主流的C語言編譯軟體是什麼
C語言相比其他很多新興的、復雜的語言,語法還是簡單一些,較好實現的。
所以在C語言幾十年的發展中出現了各式各樣的編譯器,還有一些容易被誤解為編譯器的IDE。
這里列舉幾個主流的:
GCC
毫無疑問,GCC幾乎是unix及linux系統中最通用的編譯器套件,幾乎所有的linux發行版都預裝了GCC作為C語言的默認編譯器。除了對C語言的支持,GCC還支持C++、Objective-C等多種語言。GCC早在1987就由Richard Stallman作為GNU計劃的一部分發布。
Clang
Clang是近幾年新興的C/C++以及Objective-C的編譯器,Apple是其主要投資者,其最初的開發者已加盟Apple。雖說是新興,但其對C/C++標準的支持不亞於GCC等老牌編譯器,並且外部介面和GCC完全兼容,並且因其模塊化、錯誤提示完善等優點已經越來越受到重視。一些如FreeBSD等項目已將clang作為默認編譯器。
其實Clang並不是一個完整的編譯器,而是作為同一批開發者開發的另一個備受關注的虛擬機(類似於JVM)的llvm的一個前端開發,只是負責將C語言源碼編譯為llvm IR的中間語言,再由llvm編譯為目標代碼,這樣做可以讓其可移植性更好。
Microsoft Visual C++
作為擁有可視化集成編程系統的編譯器,VC被很多使用Windows作為開發環境的初學者使用。詳見網路的介紹
http://ke..com/view/2070966.htm?fromtitle=vc&fromid=7792954&type=syn#viewPageContent
E. c語言編譯器的選擇
關於C語言編譯器的選擇(Tc2.0,Tc3.0,Vc6.0等)
我們在學習C語言時通常會面臨C語言編譯器的選擇,事實上C語言編譯器可以分為C和C++兩大類,其中C++是C的超集,均向下支持C。主要的C語言編譯器及特點分別如下:
(1)TC 2.0DOS平台軟體。最經典的C語言編譯器,系統體積小,簡單易學,容易上手,而且很多前人或書籍的程序均基於該編譯器,是學習C語言的首選。不過它不支持滑鼠,但讀者如果掌握幾個快捷鍵,操作時對滑鼠可能就不怎麼需要了,如:F2 存檔 F3 打開程序 Alt+F3在最近打開的文件之間切換 Alt+F5觀察運行結果F9 編譯製作EXE Ctrl+F9編譯並運行Ctrl+Y 刪除當前行 Ctrl+KB定義塊首 Ctrl+KK 定義塊尾 Ctrl+KC復制塊 Ctrl+KY刪除塊Ctrl+KV 移動塊
(2)Tc3.0DOS平台軟體。目前比較不錯的C/C++語言編譯器,支持滑鼠,語法著色,多文檔,錯誤跟蹤也很好,操作與TC2.0有很多類似,TC2.0會用那麼TC3.0也很快會用,缺點是以前很多代碼是用TC2.0設計的,而由於TC3.0語法要求的嚴格性,如要求函數必須定義類型,所以向下存在一定的兼容性問題,所以對於初學者選擇起來很矛盾,建議先學會使用TC2.0,而把TC3.0作為能力的補充和平時工具之用。目前有的教材已經選用該編譯器,不過需要一個較長的調整期,因為很多源代碼需要過渡過來才行,雖然性能上比TC2.0有所提高,但對於初學者沒有質的變化,選擇時需要注意。
(3)VC++ 6.0Windows平台。目前主流的C/C++語言編譯器,包含強大的類和內嵌WinAPI的MFC,具有可視化的編程界面。對於TC等的作品也具有向下兼容的特點,建議讀者選用作為C語言過渡到Windows平台編程的首選工具。當然,作為學習,該系統顯得有點龐大,不過通過入門的學習,調試舊的Tc程序也可以。還有其他的編譯器,例如Win tc、gcc、lcc、BC 3.1等等,事實上,編譯器的選擇不是最重要的,他們都可以完成基本的C語言編譯,不過面向考試的時候,還是根據考試的要求,因為編譯器的編譯結果存在著一定的差別,特別在一些復雜語法的語句編譯上。從目前的形勢看,對於從未學習過計算機程序設計的讀者來說,學習C語言時,建議開始選擇Tc2.0,雖然不能使用滑鼠,但幾個快捷鍵的熟練運用基本上可以解決操作的問題,當然有時間的時候了解使用TC3.0就更好了;對於學習過TC2.0的讀者來說,平時完全可以在TC3.0或VC 6.0下調試程序,但考試的時候如果要求必須在TC2.0下,那最好上機練習時在TC2.0下。當然,使用如記事本等文本編輯器編輯程序,然後用TC來調試也不失為一種好方法。另外,DOS平台的Tc2.0或Tc3.0都存在某些機器運行時鍵盤響應遲緩或停頓的問題,Tc3.0可能這種現象要多一點,這主要是由DOS基本內存的不足造成的。可以安裝水平考試課題組提供的DOS模擬器來解決問題,該模擬器重新劃分更多的內存,效果不錯。
新的類似軟體平台也需要讀者關注,那就是java和Viusal C#,因為從發展的眼光來看,目前軟體設計平台有一定的趨同趨勢。例如:java和C#,都來自於C和C++,都作了不錯的擴展和優化。對於深入學習C語言的同學,未來幾年請務必學習VisualStudio.Net或者Java,因為這二者代表了現在的軟體設計主流。他們的主要特點是:優秀的IDE設計環境,強大的WEB服務設計功能,對C++的優化和擴充,基於虛擬機的運行模式,優秀的面向系統開發,可視化的較為成熟的面向對象的程序設計機制等等.
F. 關於C與C++分別用什麼編譯器來開發的話題
其實c/c++的編譯器很多,支持c++的編譯器不只是VC6.0帶的編譯器。而且vc6.0所帶的編譯器對標准c++的支持不是很好。tc2.0算是比較好的c編譯器
G. C語言編譯器有哪些各有什麼特點
C語言編譯器目前主要有VC++、dev-C++、C-Free、win-TC、TC 2.0等等。
其中比較經典的VC++,微軟的產品,編譯器,鏈接器,運行,調試等功能於一體的強大開發工具,特點是功能十分強大,對於新手來說需要一段時間去摸索。
dev-C++是windows下一款開發c/c++的開發環境,使用gcc為編譯器,遵循標准,功能比較強大,語法高量,可以進行單步調試(這對排除錯誤很重要),進行斷點設置等功能,遵循C標准,是一款很強大的開發工具。
C-Free是一款支持多種編譯器的專業化C/C++集成開發環境(IDE)。利用C-Free,使用者可以輕松地編輯、編譯、連接、運行、調試C/C++程序。
TC 2.0:Borland公司的產品,在dos界面下編譯運行,小巧、靈活,但是不能使用滑鼠。
win-TC:在tc2.0的基礎上加上了界面,能夠使用滑鼠,具有語法高量,可以嵌入匯編等特點,對新手一些,拜託了不能用滑鼠的困難。
編譯器,簡單講,就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器(Linker) → 可執行程序 (executables)。
H. 常見的C語言編譯器是什麼
目前最流行的C語言編譯器有以下幾種:
1、GNU Compiler Collection 或稱GCC
GCC(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的編程語言編譯器。它是以GPL許可證所發行的自由軟體,也是 GNU計劃的關鍵部分。
GCC原本作為GNU操作系統的官方編譯器,現已被大多數類Unix操作系統(如Linux、BSD、Mac OS X等)採納為標準的編譯器,GCC同樣適用於微軟的Windows。GCC是自由軟體過程發展中的著名例子,由自由軟體基金會以GPL協議發布。
2、Microsoft C 或稱 MS C
Microsoft C 是c語言的一種IDE(集成開發環境),常見的還有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......
3、Borland Turbo C 或稱 Turbo C
Turbo C是美國Borland公司的產品,Borland公司是一家專門從事軟體開發、研製的大公司。該公司相繼推出了一套 Turbo系列軟體, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 這些軟體很受用戶歡迎。
(8)c和c編譯器擴展閱讀:
C編譯的整個過程很復雜,大致可以分為以下四個階段:
1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。
2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。
3、匯編階段將匯編語言翻譯成機器指令。
4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。
I. 大師解惑額。請問有C語言編譯器和C語言編輯器嗎 如果有 有什麼區別,謝謝
C語言編譯器就兩個,一個GCC,一個是CL。CL是微軟搞的編譯器。編譯器就是把你寫的代碼,翻譯成2進制的一個程序,編譯器一般很小,只有幾百Kb。編輯器,你說是IDE吧,就是帶有輔助寫代碼工具的文本編輯器而已。一般編輯器都帶有高亮關鍵字和代碼提示代碼補全的功能,來方便你寫代碼的。比如你在Visual C++里點下編譯按鈕,其實是VC++調用一個獨立的CL.exe文件如來執行編譯過程的。CL.exe文件可以在你安裝VC++的目錄下的bin文件夾里找到。另外GCC是Linux下的編譯器。
J. 什麼是c編譯器有什麼用,可以用它來寫C語言嗎
c編譯器就是把你寫的c語言程序轉換成機器能理解及執行的代碼