歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Linux之gcc的一些常見用法

Linux之gcc的一些常見用法

日期:2017/3/1 10:20:46   编辑:Linux編程

1.gcc編譯器對程序的編譯,分為四個階段:

1>預編譯(pre-processing):在預處理階段,輸入的是C語言的源文件,通常為*.c。它們一般帶有*.h之類的頭文件。這個階段主要處理源文件中的#ifdef,#include,#define預處理命令。該階段會生成一個中間文件*.i文件。

這個階段使用命令:

gcc –E tiger.c –o tiger.i

它通過對源文件tiger.c使用-E選項來生成中間文件tiger.i

2>編譯和優化(compiling):在編譯階段,輸入的是中間文件*i,編譯後生成匯編文件*.s

這個階段使用命令:

gcc –S tiger.i –o tiger.s

3>匯編(assembing):在匯編階段,將輸入的匯編文件*.s轉換成二進制機器代碼*.o.

這個階段使用命令:

gcc -c tiger.s –o tiger.o

4>鏈接(linking):最後在鏈接階段將輸入的二進制機器代碼文件*.o,www.linuxidc.com匯集成一個可執行的二進制代碼文件。

這個階段使用命令:

gcc tiger.o -o tiger

注:

以上所有階段,可以直接使用gcc -o tiger tiger.c,直接生成可執行文件。

gcc -o tiger tiger.c(也可以使用gcc tiger.c -o tiger)

Copyright © Linux教程網 All Rights Reserved