您的位置:首页 > 运维架构 > Linux

初识gcc编译过程

2016-07-06 19:26 330 查看
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 )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux