c編譯器gcc
1、MicrosoftVisualC++是微軟公司的免費C語言編程軟體,是用戶在安裝VisualC++庫時必須安裝的運行時組件,可以完美解決在系統運行一些軟體時會遇到缺少DLL的情況,使用戶可正常運行VisualC++開發的應用程序。
2、myeclipse是款優秀的java開發工具,MyEclipse功能強大,運用廣泛,尤其是對各種開源產品的支持十分不錯,能夠大大提高開發人員的工作效率。
3、TurboC是一款功能快捷高效的C語言編輯器,主要是用來編寫C/C++程序,無需獨立地編輯、編譯和連接程序就能建立並運行C語言程序,軟體體積非常的小巧,並且對於電腦方面沒有特別的系統要求,功能上也十分的強大。
4、gcc編譯器是款專業的c語言編輯工具,可用於c語言、c++、java、object-C等語言程序中去,支持交叉編譯器,交叉語言設計,提供交叉編譯環境,通過在命令列下鍵入一些命令參數,讓編程更有效率。
總結
c語言可以用的編譯器有很多,包括MicrosoftVisualC++、MyEclipse、TurboC和gcc編譯器等。
『貳』 gcc是什麼
GCC是一個用於linux系統下編程的編譯器
是一個用於編程開發的自由編譯器。最初,GCC只是一個C語言編譯器,它是GNU C Compiler 的英文縮寫。隨著眾多自由開發者的加入和GCC自身的發展,如今的GCC已經是一個包含眾多語言的編譯器了。其中包括 C,C++,Ada,Object C和Java等。所以,GCC也由原來的GNU C Compiler變為GNU Compiler Collection。也就是 GNU編譯器家族的意思。當然,如今的GCC藉助於它的特性,具有了交叉編譯器的功能,即在一個平台下編譯另一個平台的代碼。
『叄』 c語言編譯器是一種()
c語言編譯器是一種系統軟體。
C語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護。C語言的表現能力和處理能力極強。它不僅具有豐富的運算符和數據類型,便於實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。由於C語言實現了對硬體的編程操作,因此C語言集高級語言和低級語言的功能於一體。既可用於系統軟體的開發,也適合於應用軟體的開發。此外,C語言還具有效率高,可移植性強等特點。
(3)c編譯器gcc擴展閱讀:
最流行的C語言編譯器有以下幾種:
1、GNU Compiler Collection 或稱GCC
2、Microsoft C 或稱 MS C
3、Borland Turbo C 或稱 Turbo C
這些C語言版本不僅實現了ANSI C標准,而且在此基礎上各自作了一些擴充,使之更加方便、完美。
『肆』 gcc編譯器幾乎很難發現c語言中的語法錯誤嗎
1、使用gcc命令編譯c++程序遇到錯誤。
需要明確的是,gcc是可以編譯c++程序的。gcc,原名GNU C Compiler,最初是C語言的編譯器,但經過發展之後,它變成了一個可以支持C++、Fortran、Pascal、Objective-C、Java、Ada,以及Go與其他語言編譯的編譯器套件,其名稱也因此改為了GNU Compiler Collection。g++便是其中的一部分,用於處理c++語言。雖然大多數情況下,我們直接使用g++命令來編譯c++程序,但直接使用gcc命令也可以編譯c++程序的,當然前提是安裝了g++(gcc-c++)模塊。gcc命令會根據源程序的後綴名來決定實際使用的編譯器,編譯過程與直接使用g++完全一樣,但是,鏈接過程有點不同。g++命令會自動給你加上c++標准庫的鏈接,但gcc命令卻不會給你自動加上,因些需要手動加上。例如如下的程序:
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
使用gcc命令編譯會報undefined reference的錯誤,使用g++命令就不會,但是使用gcc命令加上stdc++的鏈接庫就可以成功編譯。所以,如果是編譯c++程序,最好還是使用g++命令編譯吧。
2、undefined reference to XXX的問題
這個問題應該說是非常常見的一個問題了,通常情況下,這個問題是由於你使用了第三方的庫文件,卻沒有加上相應的庫的鏈接,導致編譯器找不到符號。這種情況也比較好解決,只要加上鏈接庫就可以了,具體命令有兩種寫法,一是使用-L和-l參數指定庫的路徑和庫名,其中,庫的文件名必須為libxxx.so或者libxxx.a的形式,其中的xxx就是庫名,跟在-l參數後面;第二種是直接寫上庫的文件名(相對路徑、絕對路徑都可以),這種寫些就是直接當這個庫文件是一個.o文件(目標文件)進行鏈接。
不過有時候,明明已經寫上了鏈接庫,可還是會有undefined reference的錯誤,這個候,可能就是鏈接順序的問題了。同樣是上述簡單的hello.cpp,我們使用gcc命令編譯(不用g++命令是因為它自動加了stdc++的鏈接庫,我們不好改順序)
可以看到,雖然加上了-lstdc++,但還是有undefined reference的錯誤。這是因為鏈接器在進行鏈接的時候,是從前往後找符號的。由於libstdc++.so庫中的的符號(std::cout,std::endl)是在hello.o(由hello.cpp編譯而來)中使用的,因此,當鏈接器從左至右拋描庫文件時,第一個碰到了stdc++庫,發現並沒有使用這個庫中的符號,於是就將這個庫給丟棄不用了,繼續往後鏈接hello.o的時候,發現了其中要使用一些符號,而這些符號是stdc++中的,而stdc++庫已經被鏈接器給扔了,所以就找不著了,就有了undefined reference。解決的方案也是兩個:一是按引用順序寫鏈接的目標文件的順序,如果是編譯可執行程序,就從包含main函數的.o文件開始寫,最基礎的庫寫在最右邊;二是加上-Wl,--as-needed參數,這個參數會將庫文件中加入NEED標識,而不管這個庫文件有沒有用到(也就是告訴鏈接器,那個暫時沒用到的庫先別扔了)。但是第二種方法好像對stdc++這個庫沒什麼作用,其他的第三方庫可以,具體原因是什麼還不太清楚,所以,最好寫編譯選項的時候,庫文件還是按引用順序寫吧。
『伍』 gcc-c和-o有什麼區別
-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文件。
(5)c編譯器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,對程序進行優化編譯、鏈接,採用這個選項,整個源代碼會在編譯、鏈接過程中進行優化處理,這樣產生的可執行文件的執行效率可以提高,但是,編譯、鏈接的速度就相應地要慢一些。
『陸』 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 ");
}
(6)c編譯器gcc擴展閱讀:
在使用GCC編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。GCC編譯器的調用參數大約有100多個,這里只介紹其中最基本、最常用的參數。具體可參考GCC Manual。
GCC最基本的用法是∶gcc [options] [filenames]
其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。
網路_gcc
『柒』 什麼是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)c編譯器gcc擴展閱讀:
gcc所遵循的部分約定規則:
1、.c為後綴的文件,C語言源代碼文件。
2、.a為後綴的文件,是由目標文件構成的檔案庫文件。
3、.h為後綴的文件,是程序所包含的頭文件。
4、.i 為後綴的文件,是C源代碼文件且不應該對其執行預處理。
5、.m為後綴的文件,是Objective-C源代碼文件。
6、.o為後綴的文件,是編譯後的目標文件。
7、.s為後綴的文件,是匯編語言源代碼文件。
『捌』 常見的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編譯器gcc擴展閱讀:
C編譯的整個過程很復雜,大致可以分為以下四個階段:
1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。
2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。
3、匯編階段將匯編語言翻譯成機器指令。
4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。
『玖』 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)。