目錄
GCC
我們都知道,在Windows系統下,由C語言或C++編寫的程序,需要編譯成exe後才能在Windows系統上運行。那麼,在Linux上也一樣,C語言寫的程序需要編譯以後纔可以運行。在Windows上,編譯工具有VS系列。那麼在Linux上,編譯可以使用gcc來完成。
GCC(GNU Compiler Collection,GNU編譯器套件)是由GNU開發的編程語言譯器。GNU編譯器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go語言前端,也包括了這些語言的庫(如libstdc++,libgcj等)GCC的初衷是爲GNU操作系統專門編寫的一款編譯器。大部分 Linux 發行版中都會默認安裝GCC。GCC 編譯器通常以gcc
命令的形式在終端(Shell)中使用,它有很多選項。
gcc的組成
GCC是由許多組件組成的。如下列出了 GCC 的各個部分,但它們也並不總是出現 的。有些部分是和語言相關的,所以如果沒有安裝某種特定語言,系統中就不會出現相關的文件。
部分 | 描述 |
---|---|
c++ | gcc 的一個版木,默認語言設置爲 C++,而且在連接的時候自動包含標準 C++ 庫。這和 g++ 一樣 |
ccl | 實際的C編譯程序 |
cclplus | 實際的 C++ 編澤程序 |
collect2 | 在不使用 GNU 連接程序的系統上,有必要運行 collect2 來產生特定的全局初始化代碼(例如 C++ 的構造函數和析構函數) |
configure | GCC 源代碼樹根目錄中的一個腳木。用於設置配置值和創建GCC 編譯程序必需的 make 程序的描述文件 |
crt0.o | 這個初始化和結束代碼是爲每個系統定製的,而且也被編譯進該文件,該文件然後會被連接到每個可執行文件中來執行必要的啓動和終止程序 |
cygwin1.dll | Windows 的共享庫提供的 API,模擬 UNIX 系統調用 |
f77 | 該驅動程序可用於編譯 Fortran |
f771 | 實際的 Fortran 編譯程序 |
g++ | gcc 的一個版木,默認語言設置爲 C++,而且在連接的時候自動包含標準 C++ 庫。這和 c++ 一樣 |
gcc | 該驅動程序等同於執行編譯程序和連接程序以產生需要的輸出 |
gcj | 該驅動程序用於編譯 Java |
gnat1 | 實際的 Ada 編譯程序 |
gnatbind | 一種工具,用於執行 Ada 語言綁定 |
gnatlink | 一種工具,用於執行 Ada 語言連接 |
jc1 | 實際的 Java 編譯程序 |
libgcc | 該庫包含的例程被作爲編澤程序的一部分,是因爲它們可被連接到實際的可執行程序中。 它們是特殊的例程,連接到可執行程序,來執行基木的任務,例如浮點運算。這些庫中的例程通常都是平臺相關的 |
libgcj | 運行時庫包含所有的核心 Java 類 |
libobjc | 對所有 Objective-C 程序都必須的運行時庫 |
libstdc++ | 運行時庫,包括定義爲標準語言一部分的所有的 C++ 類和函數 |
查看是否安裝了gcc
gcc --version #安裝好了gcc,就可以使用此命令查看版本
cc --version #如果已經安裝好GCC,並鏈接到名爲 cc 的默認C編譯器,就會看到編譯器的版本號和版權信息
如果沒有安裝,可以使用以下命令安裝gcc
yum -y install gcc
gcc的使用
例如,我們有一個C語言文件,如下。我們使用 gcc 文件名 編譯,編譯後生成 a.out 文件。
gcc main.c
如果不想使用默認的文件名,那麼可以通過 -o 參數來自定義文件名
gcc main.c -o xie