GCC 编译器

天大地大妈咪最大 提交于 2020-03-28 09:30:58

过程文件

后缀 含义 描述
.c 源文件 源代码
.o 源文件的目标文件 源代码预处理,编译和汇编后的二进制
.a 目标文件的归档文件 目标文件的打包,没有链接过程
.so 动态链接库文件 由目标文件或归档文件链接而成,没有程序入口,不能独立运行
.out 编译输出可执行文件 由目标文件或归档文件链接而成,有程序入口,可以独立运行

常用工具

工具 描述
gcc 通常用于完成预处理、编译、汇编、链接工作 (.c -> .o .so .out)
ar 通常用于归档目标文件 (.o -> .a)

常用方法

1.生成可执行文件

gcc -o app.out  main.c

2.生成动态库文件

gcc -fPIC -shared -o libfunc.so  func.c

3.生成目标文件

gcc -c fun1.c fun2.c

4.生成静态库文件

ar rcs fun.a  fun1.o fun2.o

常用选项

参数 描述
-I 指明头文件的包含路径
-L 指明静态库的包含路径
-l 指明静态库的名字
-Wl,-rpath= 指明运行时可以找到动态链接库的路径
-g 编译时产生调试信息
-Wall 生成所有警告信息
-On n=0~3 优化级别,-O3最高
-static 禁止使用动态库
-share 尽量使用动态库
-fPIC 产生与位置无关的代码
-c 激活预处理,编译和汇编
-o 指定目标名称

更多

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!