|
链接时优化,即LTO(Link Time Optimization),部分介绍如下(详细的可翻看GCC文档关于FLTO的介绍):当用源代码调用时,它生成GIMPLE(GCC的内部表示之一),并将其写入对象文件中的特殊ELF部分。当对象文件链接在一起时,从这些ELF部分读取所有函数体,并实例化它们,就像它们是同一个翻译单元的一部分一样。多个中间文件通过链接器合并在一起,并将它们组合为一个程序,缩减代码体积,因此链接时优化是对整个程序的分析和跨模块的优化。同时,这就要求所有参与链接的部分在编译时都要有这个参数,否则链接时可能会引起错误。
MRS中在工程属性页面开启链接时优化的入口如下:
如果在MRS中部分工程使用此选项后,发现代码运行错误,可能的原因有如下几种:
解决方法:检查代码写法,确保程序中启用的中断都有C代码的级的处理程序,删除启动文件中的中断原地跳转程序(如下图所示)。