sdcc man阅读笔记(二)——基础编译选项&output files

本文是关于SDCC编译器的基础编译选项和生成的output文件的详细解读。内容涵盖单源文件和多源文件的编译、库文件链接,以及编译过程中产生的asm、lst、rst、sym、rel、map和mem等文件的作用,对于理解和优化代码编译过程以及资源占用分析十分有帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基础编译选项

1.1 单源文件的编译

假设目前有一个源文件led.c,用来控制开发板做流水灯循环,可以用如下命令进行编译。

$sdcc led.c

编译完之后发现目录下好多生成的编译文件。其中led.rel是类似gcc中的led.o这样用于链接的对象文件,有所不同的是,led.rel中并不包含链接用的汇编代码,它包含在led.lst中。而led.ihx是用来烧写的hex文件,它的格式是intel hex规范。实际用于烧写的文件格式要根据烧写工具来定制,这一点之后再研究。

1.2 多源文件的编译

在另外一个项目中,共有4个源文件。key.c用来控制矩阵键盘,display.c用来操作点阵屏,uart.c用来实现串行通信,而main.c用来统一调用其他源文件里的函数。这几个源文件编译的方法是先将源文件编译成库,然后再统一链接。使用编译选项 -c 表示complier only,只编译不链接。

$sdcc -c key.c
$sdcc -c display.c
$sdcc -c uart.c
$sdcc main.c key
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值