『壹』 GNU GCC是干什麼的,是不是開發環境,還是一種術語
都不是。GNU GCC是GNU開發的一個編譯器套件集(GNU不是公司名,而是一個有約40年歷史的軟體項目名)。GCC全稱GNU Compiler Collection,包括多種編程語言的編譯器。這些編譯器作為一個整體,被稱為GCC,它不是IDE(集成開發環境)。
毋庸置疑,GCC發展到今天這個樣子,是無數優秀的程序員共同的選擇,沒有IDE是因為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, 這些軟體很受用戶歡迎。
(2)gcc編譯器包括什麼組件擴展閱讀:
C編譯的整個過程很復雜,大致可以分為以下四個階段:
1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。
2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。
3、匯編階段將匯編語言翻譯成機器指令。
4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。
『叄』 什麼是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自帶的有什麼不同
GCC的全稱是GNU Compiler Collection
是GNU下屬的編譯器集合, 包括C/C++, java, Perl, Python等語言.
你問他和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來操作和編譯代碼.
『伍』 Linux gcc-c++是什麼東西
Linux上襪棗的gcc是Gnu的C語言編譯器,至於C++編譯器,它的名字叫做g++。
實際上不要被這些程序名字所迷惑,以Gcc為例,它始終秉承了Linux程序設計橋好旦的一個基本原則——小即是美,多個小程序共同合作的原則。實際上gcc這個程序,下麵包含了cpp(c preprocess 是c語言的預處理器)、as、ld、cc(c語敏擾言編譯器)這四個程序,實際上gcc只是一個介面程序。
『陸』 gnu提供的編譯工具包括
GNU 提供的編譯工具包括匯編器as、C編譯器gcc、C++編譯器g++、連接器ld和二進制轉換工具obj。
基於ARM平台的工具分別為arm-linux-as、arm-linux-gcc、arm-linux-g++、arm-linux-ld 和arm-linux-obj。
GNU的所有開發工具都可以從www.gnu.org下載,基於ARM的工具可從www.uclinux.org獲得。
GNU的編譯器功能非常強大,共有上百個操作選項,這也是這類工具讓初學者頭痛的原因。不過,實際開發中只需要用到有限的幾個,大部分可以採用預設選項。
『柒』 什麼是GCCGCC有什麼作用
GCC(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的編程語言編譯器。它是以GPL許可證所發行的自由軟體,也是 GNU計劃的關鍵部分。
GCC原本作為GNU操作系統的官方編譯器,現已被大多數類Unix操作系統(如Linux、BSD、Mac OS X等)採納為標準的編譯器,GCC同樣適用於微軟的Windows。GCC是自由軟體過程發展中的著名例子,由自由軟體基金會以GPL協議發布。
GCC功能與作用:
1、預處理
命令gcc首先調用cpp進行預處理,在預處理過程中,對源代碼文件中的文件包含(include)、預編譯語句(如宏定義define等)進行分析。
2、編譯
用GCC編譯C/C++代碼時,它會試著用最少的時間完成編譯並且編譯後的代碼易於調試。易於調試意味著編譯後的代碼與源代碼有同樣的執行順序,編譯後的代碼沒有經過優化。
3、連接
當所有的目標文件都生成之後,gcc就調用ld來完成最後的關鍵性工作,這個階段就是連接。在連接階段,所有的目標文件被安排在可執行程序中的恰當的位置,同時,該程序所調用到的庫函數也從各自所在的檔案庫中連到合適的地方。
4、匯編
匯編過程是針對匯編語言的步驟,調用as進行工作,一般來講,.S為後綴的匯編語言源代碼文件和匯編、.s為後綴的匯編語言文件經過預編譯和匯編之後都生成以.o為後綴的目標文件。
(7)gcc編譯器包括什麼組件擴展閱讀:
gcc所遵循的部分約定規則:
1、.c為後綴的文件,C語言源代碼文件。
2、.a為後綴的文件,是由目標文件構成的檔案庫文件。
3、.h為後綴的文件,是程序所包含的頭文件。
4、.i 為後綴的文件,是C源代碼文件且不應該對其執行預處理。
5、.m為後綴的文件,是Objective-C源代碼文件。
6、.o為後綴的文件,是編譯後的目標文件。
7、.s為後綴的文件,是匯編語言源代碼文件。
『捌』 c語言用什麼編譯器
c語言可以用的編譯器有很多,包括MicrosoftVisualC++、MyEclipse、TurboC和gcc編譯器等。『玖』 gcc -g -o -c分別是什麼意思
-c和-o都是gcc編譯器的可選參數。
-c表示只編譯(compile)源文件但不鏈接,會把.c或.cc的c源程序編譯成目標文件,一般是.o文件。-o用於指定輸出(out)文件名。不用-o的話,一般會在當前文件夾下生成默認的a.out文件作為可執行程序。
例如:
gcc -c test.c將生成test.o的目標文件
gcc -o app test.c將生成可執行程序app
gcc -c a.c -o a.o表示把源文件a.c編譯成指定文件名a.o的中間目標文件(其實在這里,把-o a.o省掉,效果是一樣的,因為中間文件默認與源文件同名,只是後綴變化)。
1、如果GCC不帶-C參數,編譯一個源代碼文件(test.c)。那麼會自動將編譯和鏈接一步完成,並生成可執行文件。可執行文件可以有-o參數指定(test.o)
2、如果是多個文件,則需要先編譯成中間目標文件(一般是.o文件),在鏈接成可執行文件,一般習慣目標文件都是以.o後綴,也沒有硬性規定可執行文件不能用.o文件。
(9)gcc編譯器包括什麼組件擴展閱讀:
gcc:GNU編譯器套件(GNU Compiler Collection)包括C、C++、Objective-C、Fortran、Java、Ada和Go語言的前端,也包括了這些語言的庫(如libstdc++、libgcj等等)。GCC的初衷是為GNU操作系統專門編寫的一款編譯器。GNU系統是徹底的自由軟體。此處,「自由」的含義是它尊重用戶的自由。
基本用法:
-o output_filename,確定輸出文件的名稱為output_filename,同時這個名稱不能和源文件同名。如果不給出這個選項,gcc就給出預設的可執行文件a.out。
-O,對程序進行優化編譯、鏈接,採用這個選項,整個源代碼會在編譯、鏈接過程中進行優化處理,這樣產生的可執行文件的執行效率可以提高,但是,編譯、鏈接的速度就相應地要慢一些。