歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 初識gcc編譯過程

初識gcc編譯過程

日期:2017/3/3 11:34:54   编辑:Linux技術

gcc是一款強大的語言編譯工具。還有很多的好處就不再說。我們來具體的認識一下這個編譯器吧。

hello.c

#include <stdio.h>

#include"sum.h"

int main()

{

printf("sum=%d",sum(4,5));

}

sum.h

extern int sum(int a,int b); //聲明

sum.c

int sum(int a,int b)

{

return a + b;

}

gcc編譯過程可分為四個步驟:

預處理

編譯

匯編

鏈接

首先我們看到有一些#include < > , 這些是系統的頭文件,包含的可以是庫文件也可以是自己寫的一些文件。

其中 < > 包含的文件編譯器只在系統的頭文件目錄裡面查找,找不到就報錯(user / include / )

" " 先在當前目錄找,找不到到系統的頭文件目錄。

gcc -E hello.c > hello. i (其中-E 是編譯器到預處理結束,將hello.c預處理成hello.i文件)

預處理主要做了哪些工作呢?(1.加載頭文件 2.宏替換 3.條件編譯)

gcc -c hello.c(到編譯階段停止)(生成目標文件hello.o文件)

gcc -S hello.c (進行到匯編,生成hello.s文件)

gcc -Wall hello.c(將所有警告都列出來)

gcc hello.c -lm(其中 l 是鏈接一個庫,庫名是m(代表math。h))

gcc hello.c -ladd -L. - o hello(使用add裡面的函數)

gcc -shared -fPIC hello.c -o libhello。so(創建動態的庫文件,文件名為hello )

Copyright © Linux教程網 All Rights Reserved