gpt4 book ai didi

linux - 假设 AMD64 调用约定是标准的,Windows 和 Linux 可以共享代码吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:11:39 27 4
gpt4 key购买 nike

AMD64 在 Linux 和 Windows 上有不同的调用约定,但想象一下,如果它们相同,是否可以在它们之间共享代码?

我知道 COFF 和 ELF 之间存在差异,共享库之类的东西是不同的(GOT 与 Windows 所做的任何事情),函数名称当然也不同。

除非这一切可能吗?例如,ARM 在 Windows 和 Linux 上都有相同的约定。

最佳答案

是的。调用约定定义参数如何存储在堆栈/寄存器中,如何处理返回值等。如果它们相等,则可以共享代码,即使是二进制形式。

但是,代码不得对特定平台有任何依赖性。例如,代码不能为 IO 使用系统调用,但可能为此使用特定于平台的库。

关于linux - 假设 AMD64 调用约定是标准的,Windows 和 Linux 可以共享代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35886364/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com