由于一些相当复杂的原因,我有一组文件,我想单独编译然后链接,但是这样一个中的函数被内联放置在第二个中。这是因为我希望它们在 GCC 中使用不同的标志进行编译。我知道我可以通过研究如何解决这个问题来解决这个问题,但我想知道这是否可能。
编辑1:如果没有,是否可以将“外部”函数编译成我可以包含在另一个文件中的程序集形式。是的,疯狂但也很酷……
快速浏览一下,这很可能是一个选择。我想自动编译它是不可能的,所以有人可以给我一些关于汇编的信息吗?我只使用了基本的 ARM 程序集。我已经用-S
GCC 中的标志编译成玩具函数。如何将寄存器与变量链接?它们会始终保持相同的顺序吗?该功能将得到高度优化。我应该什么时候开始和结束提取?我应该.cfi_startproc
在开头和.cfi_def_cfa 7, 8
结尾都包含吗?#
编辑 2:
这篇文章详细介绍了 gcc 如何使用-flto
. 遗憾的是,这仅适用于 4.5 版,我没有也没有能力安装它,因为我没有需要在其上编译它的机器的 root 访问权限。另一种可能的解决方案是解释如何将不同版本的 GCC 安装到 unix 机器上的文件夹中。