C/C++學習日記:C語言編譯器gcc命令如何操作步驟

前言:C語言的應用範圍廣泛,具備很強的數據處理能力,不僅僅是在軟件開發上,而且各類科研都需要用到C語言,適於編寫系統軟件,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。

  Linux 系統中最重要的軟件開發工具是 gcc,在 Linux 系統中,c89、cc 和 gcc 這些命令基本上都指向系統的C語言編譯器,通常是GNU C編譯器,或都簡稱 gcc。在 UNIX 系統中,C 語言編譯器稱爲 cc。實際上,gcc 能夠編譯三種語言:C、C++ 和 Object C(C 語言的一種面向對象擴展)。利用 gcc 命令可同時編譯並連接 C 和 C++ 源程序,一般來說,C 編譯器通過源文件的後綴名來判斷是 C 程序還是 C++ 程序。

 

在 Linux 中,C 源文件的後綴名爲 .c,而 C++ 源文件的`後綴名爲 .C 或 .cpp。對於 C++ 程序,gcc 命令只能編譯 C++ 源文件,而不能自動和 C++ 程序使用的庫連接。因此,通常可以使用 g++ 命令來完成 C++ 程序的編譯和連接,該程序會自動調用 gcc 實現編譯。本人一直都是在 Linux系統編譯 C程序的,就 gcc 命令行的作用記錄下來。

  首先通過編寫、編譯和運行一個 HelloWorld 程序實例開始

一、源代碼

  /* hello.c */

  #include

  #include

  int main(void)

  {

  printf("Hello World!");

  return 0;

  }

 

二、 編譯、鏈接和運行程序

  #gcc -o hello hello.c

  #./hello

  Hello World!

  #

  命令選項的作用:

  1. -o Place the output into

  如:#gcc -o file file.c

  -o 告訴編譯器將可執行程序放在何處,如果沒有指定文件名稱,編譯器則會把程序放在一個名爲a.out的文件裏(a.out的含義是 assembler output,即彙編輸出)。

  2. -c Compile and assemble, but do not link

  如:#gcc -c file.c

  -c 告訴編譯器僅把源代碼編譯爲目標模塊(file.o)而跳過彙編和連接的步驟。在使用-c生成目標模塊後,就可以通過-o選項來生成可執行文件。如:#gcc -o file file1.o file2.o 可以是多個目標模塊。

 

  3. -l和-L

  指示編譯器程序要鏈接的庫。其中-L要增加庫的搜索路徑。如:hello.so動態庫放在/usr/cprimer目錄下,那就是 -L/user/cprimer

  4. -O

  如:#gcc file.c -O2,

  用來優化程序用的。優化程序,執行速度可能也有所提高,從未真正測試過。

  5. -include

  -include 告訴編譯器需要包含頭文件,但一般情況下包含頭文件都在源碼裏用#include xxxxxx實現,一般很少用這個選項。

如果你在學習C/C++的過程中遇到了問題,可以來加入小編的企鵝圈問小編哦~小編很熱情的(●’◡’●)