程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言教程01:gcc編譯器

C語言教程01:gcc編譯器

編輯:關於C語言
 

市面上的C語言教程都從hello world開始,使用IDE進行開發。這個教程以Linux為主要開發環境,使用gcc編譯器。學習編程有編程的工具,所以把如何使用這個工具做為開始章節。學習C語言主要有四大工具,如下:

  • 編輯器
    Linux下編輯器有很多,有vim、emacs、gedit,還有atom和sublime text等等工具。
  • 編譯器
    Linux有符合ANSI C標准的編譯器gcc,其他編譯器也有,gcc最為常用。
  • 調試器
    和gcc相對應的gdb
  • 維護器
    make工具,方便對源代碼管理

而把上面的功能和在一起就是IDE(集成開發環境)。

 

gcc編譯器

GNU/Linux自帶gcc編譯器,gcc(GNU C Compiler)是GNU推出的強大跨平台。

gcc工作主要分四個步驟:

  • 預處理
  • 編譯
  • 匯編
  • 鏈接

gcc的使用方法和shell命令一樣,如下:

gcc [選項] 文件

具體用法查看 man page 就知道了

 

常用的選項有

  • -c
    對源文件進行編譯,不鏈接,生成目標文件
  • -o 文件名
    將gcc處理結果保存在filename文件裡
  • -g
    加入調試信息,以便使用gdb進行調試
  • -O[0、1、2、3]
    對代碼優化等級,默認是2級
  • -static
    靜態鏈接
  • -shared
    動態鏈接

下面是gcc使用的例子,把下面代碼保存為gcctest.c文件

 

#include <stdio.h>

int main( void )

{
printf(“This is a gcc test!\n”);

return 0;

}

 

直接復制保存,使用下面的方式進行編譯,之後運行

gcc gcctest.c -o gcctest

./gcctest

gcctest

這是把.c文件直接編譯成為可執行文件,直接執行了,預處理、編譯、匯編、鏈接等操作並刪除了中間文件。

我們可以分步進行。

  1. 預處理
    預處理後生成的是.i文件,采用-E方式編譯。
    gcc -E gcctest.c -o gcctest.i
  2. 編譯
    從預處理文件編譯:
    gcc -S gcctest.i -o gcctest.s
    從.c代碼編譯:
    gcc -S gcctest.i -o gcctest.s
  3. 匯編
    從.c或.s從文件匯編:
    gcc -c gcctest.c -o gcctest.o
    gcc -c gcctest.s -o gcctest.o
    也可以直接使用as:
    as gcctest.s -o gcctest.o
  4. 鏈接
    gcc gcctest.o -o gcctest
    也可以直接用ld
    ld gcctest.o -o gcctest

預處理文件和匯編文件點下面:

C文件的預處理(*.i)、匯編(*.s)文件

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved