博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GCC编译器编译链接
阅读量:5887 次
发布时间:2019-06-19

本文共 882 字,大约阅读时间需要 2 分钟。

 

在gcc编译器环境下,常见的文件扩展名的含义如下:

.c:C源程序,经过预编译后的源程序也为.c文件,它可以通过-E参数输出。

.h:头文件

.s:经过编译得到的汇编程序代码,它可以通过-S参数输出。

.o:目标文件

.a:函数库

 

Gcc编译器常见语法:

-c:只进行编译,不进行链接,输出的是与源文件同名的.o文件。

-o:指定生成的文件的名称。链接生成可执行文件,这个参数后可以带可执行文件的名字,如果没有指定可执行文件的名字,则会默认为a.out。

-S:输出汇编代码文件,输出一个与源文件同名的.s文件,这个文件中的内容为汇编程序。

-O:在编译链接的过程中进行优化,在编译过程中对代码进行优化,代码经过优化后再利用汇编程序翻译成目标代码。

Eg.

只对程序进行编译:

gcc –c –O –I dirname x.c

其中-c是编译x.c,-O是对代码进行优化,-I是指x.c所使用的头文件啊在目录dirname中。如果只使用了系统头文件/usr/include则不用特意指定。

对编译产生的x.o文件进行链接:

gcc –L dirname –lyyy x.o –o x

其中-L指链接过程中要使用的函数库libyyy.a(-lyyy说明要使用函数库libyyy.a)在目录dirname中。 如果是使用系统库则不用特意指出/usr/lib和/lib。-o x指定了可执行文件的名称。

Eg.编译运行hello world

出现如下错误:

错误原因:不能同时使用-c 和-o,那么生成hello.o和可执行文件hello要分两步进行即编译和链接要分开操作。

记得要分开操作:

 

如果要生成hello.o,还可以使用命令gcc –c hello.c –o hello.o

编译链接还可以直接使用gcc –o hello hello.c

如果直接编译hello.c结果如下,生成一个名称为a.out的执行文件:

可以利用-o给执行文件命名:

 

转载于:https://www.cnblogs.com/winifred-tang94/p/5838095.html

你可能感兴趣的文章
Memcached 原理和使用
查看>>
Oracle中NLS_DATE_FORMAT永久生效的设置方法
查看>>
高线教材管理系统
查看>>
passive-interface
查看>>
Linq to Xml读取复杂xml(带命名空间)
查看>>
我的友情链接
查看>>
How to Be Good
查看>>
top命令 CPU利用率超过100%
查看>>
好代码
查看>>
acr122U爆破
查看>>
Cisco 2950 IOS升级
查看>>
BigData 大数据
查看>>
Centos下的PHP安装手册
查看>>
Android视频直播流(七)NV21转换NV12
查看>>
标准acl配置
查看>>
java spark WordCount
查看>>
HttpClient和HtmlUnit的比较总结
查看>>
禁止匿名VSFTP用户登录
查看>>
Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
查看>>
Oracle 10g
查看>>