一、GCC與gcc介紹
1.GCC是由GNU之父Stallman所開發的Linux下的編輯器,GCC最初的全名是CNU project C and C++,之後隨着GCC支持的語言越來越多,其全稱變爲 CNU Compiler Collection即GNU編譯器集合。目前可以編譯的語言包括:C,C++,Objective-C,Fortran,Java,and Ada
2.gcc是GCC編譯器集合下的c編譯器。(g++則是c++編譯器)gcc編譯器主要用於編譯C和C++程序,編譯C++程序時常使用g++命令,實際上是gcc連接了libstdc++庫。當前主要了解gcc的使用。
二、gcc的使用
1.使用環境
使用gcc要在Linux環境下,可以使用真正的Linux系統,或者使用一些Windows下的虛擬軟件(基礎學習階段推薦),可以使用虛擬機搭建的Linux環境。(目前我所使用的是CentOS 6.5)
2.gcc與g++的安裝
安裝之前可以使用 gcc -v 命令查詢系統GCC版本。(以此查看之前是否有安裝過)
CentOs 6.5 中gcc與g++的安裝:
注意安裝時要是以root用戶來執行命令。
安裝gcc:yum install gcc
安裝g++:yum install gcc-c++
安裝過後再次查看安裝情況:
3.文件命名規則
在Linux下生成的可執行文件沒有固定的擴展名。任何符合Linux要求的文件名,只要文件的訪問屬性中有可執行的屬性,該文件就是可以執行的。所以可執行文件沒有同意後綴沒有統一後綴,系統通過文件屬性來區分可執行文件和不可執行文件。而gcc則通過後綴來區分輸入文件的類別,下面介紹gcc所遵循的部分約定規則。
- 以.c爲後綴的文件,C語言源代碼文件;
- 以.a爲後綴的文件,是由目標文件構成的庫文件;
- 以.C,.cc或.cxx爲後綴的文件,是C++源碼文件;
- 以.h爲後綴的文件,是程序所包含的頭文件;
- 以.i爲後綴的文件,是是已經與處理過的C源代碼文件;
- 以.m爲後綴的文件,是Objective-C源代碼文件;
- 以.o爲後綴的文件,是編譯後的目標文件;
- 以.s爲後綴的文件,是彙編語言源代碼文件;
- 以.S爲後綴的文件,是經過預編譯的彙編語言源代碼文件。
4.編譯過程
Gcc編譯器在編譯時,都需要用四個步驟裏的一個或多個處理輸入文件,這四個步驟是:預處理(Pre-Processing)、編譯(Compilation)、彙編(Assembly)、連接(Linking)。在這個過程中,源文件的後綴名控制着編譯器的缺省設定,這個後綴指示出了程序代碼所用語言。
5.gcc的使用
命令格式:gcc [選項] [要處理的文件列表] [-o 目標文件]
其中被[],引出來的三部分,順序可以變換,除了要處理文件列表是必須要有的,其它可以不寫。下面通過一個簡單的例子,說明gcc的使用方法。
步驟:
(1)編寫一個簡單的C語言程序hello.c
# vi/vim hello.c
代碼內容
(2)編譯hello.c文件,生成可執行文件
# gcc hello.c
(3)執行文件,在默認情況下產生的可執行程序名爲:a.out
# ./a.out
執行結果
(4)通常可以通過gcc的”-o” 選擇來指定自己的執行程序名稱
# gcc -o name hello.c
生成可執行文件 name 執行
# ./name