04-gcc

gcc

gcc
-I指定头文件目录(后面不加空格)
-g包含调试信息
-c只编译,生成.o文件,不进行链接
-On(n:0~3)编译优化,n越大优化的越多
-Wall提示更多警告信息
-D编译时宏定义(后面不加空格)
-E生成预处理文件
-M生成.c文件与头文件依赖关系以用于Makefile,包括系统库的头文件
-MM生成.c文件与头文件依赖关系以用于Makefile,不包括系统库的头文件

toolchain

gcc编辑器
glibc该库实现Linux系统函数,例如open、read等,也实现标准c语言库,如printf等。几乎所有应用程序都需要安装与glibc链接
binutils一组用于编译、链接、汇编和其他调试目的的程序,包括ar、as、ld、nm、objcopy、objdump等
toolchain中几种主要工具的作用
ar打包生成静态库
as汇编器
ld链接器。gcc完成链接步骤中,其实是gcc调用链接器ld,将用户编译生成的目标文件连同系统的libc启动代码链接在一起形成最终的可执行文件
nm查看目标文件中的符号(全局变量,全局符号等)
objcopy将原目标文件中的内容复制到新的目标文件中,可以通过不同的命令选项调整目标文件的格式,比如去除某些ELF文件头
objdump用于生成反汇编文件,主要依赖objcopy实现,a.out编译时需要-g,objdump -dSsx a.out > file
ranlib为静态库文件创建索引相当于ar命令的s选项
readelf解读ELF文件头
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值