導航:首頁 > 源碼編譯 > 編譯器Cgcc

編譯器Cgcc

發布時間:2024-04-17 16:04:17

『壹』 gcc鏄浠涔堬紵

1銆乬cc

GCC錛圙NU Compiler Collection錛孏NU緙栬瘧鍣ㄥ椾歡錛夋槸鐢盙NU寮鍙戠殑緙栫▼璇璦璇戝櫒銆侴NU緙栬瘧鍣ㄥ椾歡鍖呮嫭C銆丆++銆 Objective-C銆 Fortran銆丣ava銆丄da鍜孏o璇璦鍓嶇錛屼篃鍖呮嫭浜嗚繖浜涜璦鐨勫簱錛堝俵ibstdc++錛宭ibgcj絳夈傦級

GCC鐨勫垵琛鋒槸涓篏NU鎿嶄綔緋葷粺涓撻棬緙栧啓鐨勪竴嬈劇紪璇戝櫒銆侴NU緋葷粺鏄褰誨簳鐨勮嚜鐢辮蔣浠躲傛ゅ勶紝鈥滆嚜鐢扁濈殑鍚涔夋槸瀹冨皧閲嶇敤鎴風殑鑷鐢便

2銆乴lvm+Clang

LLVM鏄鏋勬灦緙栬瘧鍣(compiler)鐨勬嗘灦緋葷粺錛屼互C++緙栧啓鑰屾垚錛岀敤浜庝紭鍖栦互浠繪剰紼嬪簭璇璦緙栧啓鐨勭▼搴忕殑緙栬瘧鏃墮棿(compile-time)銆侀摼鎺ユ椂闂(link-time)銆佽繍琛屾椂闂(run-time)浠ュ強絀洪棽鏃墮棿(idle-time)錛屽瑰紑鍙戣呬繚鎸佸紑鏀撅紝騫跺吋瀹瑰凡鏈夎剼鏈銆

LLVM璁″垝鍚鍔ㄤ簬2000騫達紝鏈鍒濈敱University of Illinois at Urbana-Champaign鐨凜hris Lattner涓繪寔寮灞曘2006騫碈hris Lattner鍔犵洘Apple Inc.騫惰嚧鍔涗簬LLVM鍦ˋpple寮鍙戜綋緋諱腑鐨勫簲鐢ㄣ侫pple涔熸槸LLVM璁″垝鐨勪富瑕佽祫鍔╄呫

3銆乄atcom C/C++

Watcom C/C++ 緙栬瘧鍣ㄣ乄atch Fortran 緙栬瘧鍣 緇忓凡鍦ㄤ笉鍏跺厛鍓嶆墍灞炲叕鍙窼ybase鍞鍗, 鑰岃 SciTech 杞浠跺叕鍙 浣滀負 Open Watcom 寮婧愬寘 鍙戣屻傜被浼間簬鍏朵粬鐨 寮婧愮紪璇戝櫒(渚嬪 [GCC])欏圭洰錛學atcom C浠g爜灝忚屼究鎼猴紝 鍏剁紪璇戝櫒鍚庣(浠g爜鐢熸垚鍣)鐨勭洰鏍囩爜鍙鍙樸

璇ョ紪璇戝櫒鍙鍦―OS銆丱S/2銆乄indows絳夋搷浣滅郴緇熶笂榪愯岋紝騫剁敓鎴愬悇縐嶅彲榪愯岀殑(涓嶅繀鏄璇ユ搷浣滅郴緇熺殑)浠g爜銆傝ョ紪璇戝櫒鏀鎸丯ovell NetWare鐨 NLM 鐩鏍囩爜銆傜洰鍓嶆h繘琛 涓 linux銆乵odern BSD (渚嬪侳reeBSD) 鎿嶄綔緋葷粺 閲嶅畾鐩鏍囩爜錛屼互渚垮湪 x86銆丳owerPC 鍙娿鍏跺畠澶勭悊鍣ㄤ笂榪愯屻

Open Watcom C/C++ 鐨1.4鐗堜簬2005騫12鏈堝彂琛岋紝閲囩敤 Linux x86 涓哄疄楠岀洰鏍, 鏀鎸丯T銆丱S/2絳塰ost騫沖彴鏇炬湁鏌愯寮冪疆鐨凲NX鐗堟湰錛屼絾鍏剁紪璇戞墍欏葷殑搴撳苟鏈寮婧愬彂琛屻傚綋鍓嶆渶榪戠殑紼沖畾鐗堟槸1.9鐗堬紝鍦2010騫6鏈堝彂琛屻

4銆丏igital Mars

DigitalMars鏄涓嬈鵑珮鎬ц兘鐨勭紪璇戝櫒錛屽姛鑳藉寘鍚錛屽揩閫熺紪璇/閾炬帴鏃躲佸己澶х殑浼樺寲鎶鏈銆丆ontract璁捐°佸畬鏁寸殑璧勬簮搴撱佹祻瑙圚TML鏂囨。錛屽弽奼囩紪銆佸簱銆佽祫婧愮紪璇戝櫒絳夈傚懡浠よ屽強GUI鐗堟湰銆佹暀紼嬨佷唬鐮佺ず渚嬨佸湪綰挎洿鏂般佹爣鍑嗘ā鏉垮簱絳夌瓑銆

5銆丮SVC緋誨垪

涓嶸isual Studio闆嗘垚鍙戝竷錛屽井杞鑷宸辯殑緙栬瘧鍣錛孷S鏄涓涓鍩烘湰瀹屾暣鐨勫紑鍙戝伐鍏烽泦錛屽畠鍖呮嫭浜嗘暣涓杞浠剁敓鍛藉懆鏈熶腑鎵闇瑕佺殑澶ч儴鍒嗗伐鍏鳳紝濡俇ML宸ュ叿銆佷唬鐮佺℃帶宸ュ叿銆侀泦鎴愬紑鍙戠幆澧(IDE)絳夌瓑銆

鎵鍐欑殑鐩鏍囦唬鐮侀傜敤浜庡井杞鏀鎸佺殑鎵鏈夊鉤鍙幫紝鍖呮嫭Microsoft Windows銆乄indows Mobile銆乄indows CE銆.NET Framework銆.NET Compact Framework鍜孧icrosoft Silverlight 鍙奧indows Phone銆

『貳』 什麼是GCC編譯

Linux系統下的Gcc(GNU C Compiler)是GNU推出的功能強大、性能優越的多平台編譯器,是GNU的代表作品之一。gcc是可以在多種硬體平台上編譯出可執行程序的超級編譯器,其執行效率與一般的編譯器相比平均效率要高20%~30%。 Gcc編譯器能將C、C++語言源程序、匯程式化序和目標程序編譯、連接成可執行文件,如果沒有給出可執行文件的名字,gcc將生成一個名為a.out的文件。在Linux系統中,可執行文件沒有統一的後綴,系統從文件的屬性來區分可執行文件和不可執行文件。而gcc則通過後綴來區別輸入文件的類別,下面我們來介紹gcc所遵循的部分約定規則。 .c為後綴的文件,C語言源代碼文件; .a為後綴的文件,是由目標文件構成的檔案庫文件; .C,.cc或.cxx 為後綴的文件,是C++源代碼文件; .h為後綴的文件,是程序所包含的頭文件; .i 為後綴的文件,是已經預處理過的C源代碼文件; .ii為後綴的文件,是已經預處理過的C++源代碼文件; .m為後綴的文件,是Objective-C源代碼文件; .o為後綴的文件,是編譯後的目標文件; .s為後綴的文件,是匯編語言源代碼文件; .S為後綴的文件,是經過預編譯的匯編語言源代碼文件。 Gcc的執行過程 雖然我們稱Gcc是C語言的編譯器,但使用gcc由C語言源代碼文件生成可執行文件的過程不僅僅是編譯的過程,而是要經歷四個相互關聯的步驟∶預處理(也稱預編譯,Preprocessing)、編譯(Compilation)、匯編(Assembly)和連接(Linking)。 命令gcc首先調用cpp進行預處理,在預處理過程中,對源代碼文件中的文件包含(include)、預編譯語句(如宏定義define等)進行分析。接著調用cc1進行編譯,這個階段根據輸入文件生成以.o為後綴的目標文件。匯編過程是針對匯編語言的步驟,調用as進行工作,一般來講,.S為後綴的匯編語言源代碼文件和匯編、.s為後綴的匯編語言文件經過預編譯和匯編之後都生成以.o為後綴的目標文件。當所有的目標文件都生成之後,gcc就調用ld來完成最後的關鍵性工作,這個階段就是連接。在連接階段,所有的目標文件被安排在可執行程序中的恰當的位置,同時,該程序所調用到的庫函數也從各自所在的檔案庫中連到合適的地方。 Gcc的基本用法和選項 在使用Gcc編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。Gcc編譯器的調用參數大約有100多個,其中多數參數我們可能根本就用不到,這里只介紹其中最基本、最常用的參數。 Gcc最基本的用法是∶gcc [options] [filenames] 其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。 -c,只編譯,不連接成為可執行文件,編譯器只是由輸入的.c等源代碼文件生成.o為後綴的目標文件,通常用於編譯不包含主程序的子程序文件。 -o output_filename,確定輸出文件的名稱為output_filename,同時這個名稱不能和源文件同名。如果不給出這個選項,gcc就給出預設的可執行文件a.out。 -g,產生符號調試工具(GNU的gdb)所必要的符號資訊,要想對源代碼進行調試,我們就必須加入這個選項。 -O,對程序進行優化編譯、連接,採用這個選項,整個源代碼會在編譯、連接過程中進行優化處理,這樣產生的可執行文件的執行效率可以提高,但是,編譯、連接的速度就相應地要慢一些。 -O2,比-O更好的優化編譯、連接,當然整個編譯、連接過程會更慢。 -Idirname,將dirname所指出的目錄加入到程序頭文件目錄列表中,是在預編譯過程中使用的參數。C程序中的頭文件包含兩種情況∶ A)#include B)#include 「myinc.h」 其中,A類使用尖括弧(< >),B類使用雙引號(「 」)。對於A類,預處理程序cpp在系統預設包含文件目錄(如/usr/include)中搜尋相應的文件,而對於B類,cpp在當前目錄中搜尋頭文件,這個選項的作用是告訴cpp,如果在當前目錄中沒有找到需要的文件,就到指定的dirname目錄中去尋找。在程序設計中,如果我們需要的這種包含文件分別分布在不同的目錄中

『叄』 gcc和vc編譯環境有什麼不同

1、GCC是一個編譯器集合, VC是MS開發的Windows系統C/C++ IDE.

2、GCC中的C/C++標准庫代碼和VC肯定是不同的, MS一般都是從別人那買來用, 比如Dinkumware, GCC C/C++的標准庫就是GNU自己寫的了, 當然這遵循GPL, MS雖然也可以免費拿來用, 但是MS歷來仇視GPL和Linux. 還有就是GCC C/C++的標准庫對C/C++標準的貌似是最好的.

3、Linux的桌面操作系統基本都集成安裝了KDE(K Desktop Environment), X-Windows等圖形操作系統界面, 所以各種包裝了GCC編譯器內核的IDE應運而生, 比如Ubuntu, Mandriva, Fedora, Debian等操作系統中都有自帶的GCC IDE, 當然你也可以用Commond Line來操作和編譯代碼.

『肆』 gcc緙栬瘧鍣╨inux瀹夎単cc緙栬瘧鍣╨inux

ubuntulinux涓婥#鐨勭紪璇戝櫒鏄浠涔堬紵

Linux緋葷粺鑷甯gcc緙栬瘧鍣錛屼絾鏄鍙鑳界紪璇慍錛屽傛灉瑕佸姞鍏ュ瑰叾浠栬璦鐨勬敮鎸侊紙fortran銆丆++銆丣ava絳夛級錛岃峰湪Debian/Ubuntu涓璼udoapt-getinstallgfortran鐒跺悗杈撳叆鑷宸辯殑瀵嗙爜鍗沖彲瀹夎呮垚鍔.琛ュ厖:緙栬瘧紼嬪簭瀹炰緥:gcc婧愪唬鐮佹枃浠-o紼嬪簭鍚嶅悓鐞嗭紝fortran鐢╣fortran錛孋++鐢╣++gcc鏈夊緢澶氶夐」鐨勶紝璇﹁乵an鎵嬪唽

linux鏍囧噯c鍜宑鍔犲姞緙栬瘧鍣ㄦ槸錛

Linux緙栬瘧c鍜宑++涓鑸琯cc鍜実++灝卞彲浠ヤ簡

gcc緙栬瘧鍣ㄦ槸浠涔堝叕鍙革紵

GCC鏄疓NU欏圭洰鐨勭紪璇戝櫒緇勪歡涔嬩竴錛屼篃鏄疓NU鏈鍏鋒湁浠h〃鎬х殑浣滃搧銆傚湪GCC璁捐′箣鍒濅粎浠呬綔涓轟竴涓狢璇璦鐨勭紪璇戝櫒錛屽彲鏄緇忚繃鍗佸氬勾鐨勫彂灞曪紝GCC宸茬粡涓嶄粎浠呰兘鏀鎸丆璇璦錛涘畠鐜板湪榪樻敮鎸丄da璇璦銆丆++璇璦銆丣ava璇璦銆丱bjectiveC璇璦錛孭ascal璇璦銆丆OBOL璇璦錛屼互鍙婃敮鎸佸嚱鏁板紡緙栫▼鍜岄昏緫緙栫▼鐨凪ercury璇璦錛岀瓑絳夈

鑰孏CC涔熶笉鍐嶅崟鏄疓NUCCompiler鐨勬剰鎬濓紝鑰屾槸GNUCompilerCollection涔熷嵆鏄疓NU緙栬瘧鍣ㄥ舵棌鐨勬剰鎬濅簡錛岀洰鍓嶅凡緇忔垚涓篖inux涓嬫渶閲嶈佺殑緙栬瘧宸ュ叿涔嬩竴銆

.c鏂囦歡鐢ㄤ粈涔堢紪璇戝櫒錛

C璇璦緙栬瘧鍣ㄥ彲浠ュ垎涓轟袱綾伙紝涓鏄妗岄潰鎿嶄綔緋葷粺錛屼簩鏄宓屽叆寮忕郴緇熴傛岄潰鎿嶄綔緋葷粺鍖呮嫭錛歏isualC++銆丟CC浠ュ強LLVMClang錛孷isualC++鍙鑳界敤浜嶹indows鎿嶄綔緋葷粺錛孏CC鍜孡LVMClang闄や簡鍙鐢ㄤ簬Windows鎿嶄綔緋葷粺涔嬪栵紝涓昏佺敤浜嶶nix/Linux鎿嶄綔緋葷粺銆

宓屽叆寮忔搷浣滅郴緇熷寘鎷錛欿eilC51緙栬瘧鍣ㄣ丄VRGCC緙栬瘧鍣ㄣ丄DS銆丷VDS緙栬瘧鍣ㄣ丆CS銆乂isualDSP++緙栬瘧鍣ㄧ瓑銆

c璇璦鐨勭紪璇戝櫒鏈夊摢浜涳紵

C璇璦緙栬瘧鍣ㄥ彲浠ュ垎涓轟袱綾伙紝涓鏄妗岄潰鎿嶄綔緋葷粺錛屼簩鏄宓屽叆寮忕郴緇熴傛岄潰鎿嶄綔緋葷粺鍖呮嫭錛歏isualC++銆丟CC浠ュ強LLVMClang錛孷isualC++鍙鑳界敤浜嶹indows鎿嶄綔緋葷粺錛孏CC鍜孡LVMClang闄や簡鍙鐢ㄤ簬Windows鎿嶄綔緋葷粺涔嬪栵紝涓昏佺敤浜嶶nix/Linux鎿嶄綔緋葷粺銆

宓屽叆寮忔搷浣滅郴緇熷寘鎷錛欿eilC51緙栬瘧鍣ㄣ丄VRGCC緙栬瘧鍣ㄣ丄DS銆丷VDS緙栬瘧鍣ㄣ丆CS銆乂isualDSP++緙栬瘧鍣ㄧ瓑銆

『伍』 linux 怎麼編譯c的源程序的gcc,編譯命令是什麼

在Linux下面,如果要編譯一個C語言源程序,我們要使用gcc編譯器。

先將源文件編譯成目標文件:gcc - c hello.c

生成hello.o文件,再將目標文件編譯成可執行文件:gcc -o hello hello.o

如:

int main(int argc,char **argv)

{

printf("Hello Linux ");

}

(5)編譯器Cgcc擴展閱讀:

在使用GCC編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。GCC編譯器的調用參數大約有100多個,這里只介紹其中最基本、最常用的參數。具體可參考GCC Manual。

GCC最基本的用法是∶gcc [options] [filenames]

其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。

網路_gcc

『陸』 常見的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, 這些軟體很受用戶歡迎。

(6)編譯器Cgcc擴展閱讀:

C編譯的整個過程很復雜,大致可以分為以下四個階段:

1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。

2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。

3、匯編階段將匯編語言翻譯成機器指令。

4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。

『柒』 CC和gcc是一樣的編譯器嗎

cc是Unix系統的C Compiler,而gcc則是GNU Compiler Collection,GNU編譯器套裝。gcc原名為Gun C語言編譯器,因為它原本只能處理C語言,但gcc很快地擴展,包含很多編譯器(C、C++、Objective-C、Ada、Fortran、Java)。因此,它們是不一樣的,一個是古老的C編譯器,一個是GNU編譯器集合,gcc裡面的C編譯器比cc強大多了,因此沒必要用cc。
下載不到cc的原因在於:cc來自於昂貴的Unix系統,cc是商業軟體。
Linux下的cc是gcc符號連接,可以通過$ls –l /usr/bin/cc來簡單察看,該變數是make程序的內建變數,默認指向gcc。cc符號鏈接和變數存在的意義在於源碼的移植性,可以方便的用gcc來編譯老的用cc編譯的Unix軟體,甚至連makefile都不用改在,而且也便於Linux程序在Unix下編譯。

閱讀全文

與編譯器Cgcc相關的資料

熱點內容
vsc編譯vc程序 瀏覽:193
centos55命令 瀏覽:705
美國干編程有什麼條件 瀏覽:505
阿里雲伺服器遠程鏈接 瀏覽:249
墨鏡慧眼怎麼下載廠商的app 瀏覽:61
iphone加密專線 瀏覽:491
aes產生加密文件 瀏覽:415
編程實現藍牙通信 瀏覽:768
怎麼恢復掉簽的app 瀏覽:847
伺服器部署ip地址 瀏覽:322
涉密場所周邊安全防護距離演算法 瀏覽:674
安卓fpse模擬器怎麼設置加速 瀏覽:947
建行app怎麼生成電子簽章 瀏覽:508
獲取當前時間javadate 瀏覽:75
帶密碼的wifi如何加密 瀏覽:239
伺服器怎麼變成陣列 瀏覽:719
web前端黑客技術pdf 瀏覽:72
育兒百科全書pdf 瀏覽:601
任務欄啟動命令 瀏覽:913
編譯優化等級區別 瀏覽:758