0706的Linux实训总结

本文是关于嵌入式Linux暑期实训的分享,重点介绍了GCC的三级优化,特别是-O3级别的优化技术,如内联函数和伪寄存器网络,并简要概述了GCC制作静态和动态库的方法。此外,还提及了CMake在构建过程中的应用。
摘要由CSDN通过智能技术生成

@第三天(●ˇ∀ˇ●)嵌入式Linux暑期实训分享

了解一下gcc的三级优化

GNU编译器提供-O选项供程序优化使用:
-O1提供基础级别的优化;主要在优化汇编语言的处理方式上,以及变量常量的优化。
-O2 提供更加高级的代码优化,会占用更长的编译时间 ;主要在内存的管理和特殊指令的使用
-O3 提供最高级的代码优化 ;
-O4 不优化,这是默认值
不同的优化级别使用的优化技术也可以单独的应用于代码。 可以使用-f命令行选项引用每个单独的优化技术。
下面只介绍一下-O3的优化:
-finline-functions: 这种优化技术不为函数创建单独的汇编语言代码,而是把函数代码包含在调度程序的
代码中。 对于多次被调用的函数来说, 为每次函数调用复制函数代码。 虽然这样对于减少代码长度不利, 但是
通过最充分的利用指令缓存代码, 而不是在每次函数调用时进行分支操作, 可以提高性能。

-fweb: 构建用于保存变量的伪寄存器网络。 伪寄存器包含数据, 就像他们是寄存器一样, 但是可以使用各种
其他优化技术进行优化, 比如cse和loop优化技术。

-fgcse-after-reload: 这中技术在完全重新加载生成的且优化后的汇编语言代码之后执行第二次gcse优化,
帮助消除不同优化方式创建的任何冗余段。

总结一下gcc的静态和动态库制作:

一、使用gcc制作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
M
二、使用CMake

关于CMake

下此再说,今天从早到晚一直在忙,明天再更。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值