初识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 )
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 socket 初步
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- Linux 下无损图片压缩小工具介绍