GCC基本使用

gcc编译过程

1.预处理 gcc -E xxx.c -o xxx.i -E选项会让文件停留在预处理之后的文件。
预处理就是把你在源程序中包含的头文件和用#define那类宏定义语句进行添加和替换
2.编译 gcc -S xxx.c -o xxx.s -E选项会让文件停留在编译之后的文件。
检查函数和语法错误
3.汇编gcc -c xxx.c -o xxx.o -E选项会让文件停留在汇编之后的文件。
将经过编译的源程序翻译成汇编语言的文件
4.链接 gcc xxx.c -o xxx
将汇编语言的文件翻译成二进制,并进行链接,链接就是把你需要的外部函数链接到你的源程序中,每个.o文件都会有两个表,一个是本文件中实现的函数,另一个是本文件需要的函数,链接器就是这样链接外部函数地。

5.如果想在编译之后使用gdb调试文件需要加上选项-g
gcc -g xxx.c -o xxx

关于链接的问题

Linux 中函数库包括两类:静态库和共享库,静态库的代码在编译时就已链接到开发人员开发的应用程序中,而共享库是在程序开始运行时被加载。库文件名由前缀“lib”和库名以及后缀组成,共享库的后缀名由“.so”和版本号组成。静态库的后缀名为“.a”。
gcc 中加入-L “-L”选项用于指明库文件的路径gcc 中加入 -lm(小写L) m为库名,在 Linux 中函数库的命名规则都是以“lib”开头的,所以链接库文件只需填写 lib 之后的内容即可,系统缺省链接的是共享库,这是由于 Linux 系统中默认的是采用动态链接的方式。如果用户要链接同名的静态库,则在“-l”之前需要添加选项“-static 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值