编译裁减代码的几点体会

对于嵌入式软件来说,内存(包括可丢失性和不可丢失性的)都是非常重要;
需要在可移植性,可扩展性,性能上做出一些选择。
1.采用动态库,确实是一个具有可扩展性的方案,但是对采用的动态库,需要进行裁减和优化才
能达到要求,一般的开源代码的动态库很轻易的超过1M。如果不裁减,不优化,那么出于对空间的 考虑,采用静态连接也是一种选择,但就是要牺牲点扩展性。
2.调试信息的问题;调试信息一般分成两种,一种是编译的时候在生成目标代码的时候定义的;比如CFLAGS+=-g; 这种一般是为了能够采用gdb而增加的,是编译器自动增加的符号;这个可以不需要每个库都去掉-g,在生成可执行软件的时候-s就可以了,但这是对于静态连接而言。
另外一种是在写代码中增加进去的打印信息;一般情况下又分成info信息;error信息;
debug信息; 这些信息是代码的一部分;目的就是能够知道程序的运行状态。
3.优化问题;这个其实是会改变你的代码的,如果代码写得比较冗余,可能会把一些东西去掉的。优化的好处就是代码大小变小很多。嵌入式一般采用的是-O2,-O0是不优化,-O3是更厉害的优化
同时编译的速度也会慢很多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值