gpt4 book ai didi

linux - 汇编程序是否可以在 Linux 发行版之间移植?

转载 作者:可可西里 更新时间:2023-11-01 11:44:53 25 4
gpt4 key购买 nike

以汇编格式发布的程序是否可以在 Linux 发行版之间移植(模数 CPU 架构差异)?

这是我的问题的背景:我正在研究一种新的编程语言(名为 Aklo),其操作方式将是经典的编译为 .s 并将结果提供给 GNU 汇编程序。

显然,最终自己编写实现会很好,但我不得不用 C++ 维护它以解决先有鸡还是先有蛋的问题:假设您是第一次下载编译器,它本身是用 C++ 编写的Aklo,你如何编译它?据我了解,不同的 Linux 发行版和其他类似 UNIX 的系统对二进制格式有不同的约定。

但我刚刚想到,一个解决方案可能是发送 .s 文件(好吧,每个 CPU 架构一个):假设您已经或可以安装 GNU 汇编器是公平的。当然,我仍然需要一个 Bootstrap 编译器,但这并不需要很快;我可以用 Python 编写它。

汇编程序是否可以像二进制文件那样可移植?还有其他我没有想到的绊脚石吗?

为回应一个答案而添加:

我曾满怀憧憬地看着 LLVM,那里肯定有很多好东西,它会让我的生活更轻松——除了它会导致对安装正确版本的 LLVM 的依赖。对开发机器的依赖并不是那么糟糕,但在一个将程序作为源代码发布的世界里,用 Aklo 编写的每个程序的每个用户都会产生同样的依赖,我认为这也是付出高昂的代价。

但如果将已编译程序作为汇编程序传送的解决方案可行……那么这就解决了这个问题,毕竟我可以使用 LLVM,这将是一个巨大的胜利。

所以关于汇编程序的可移植性的问题比我最初意识到的要重要得多。

结论:来自这里和 LLVM 邮件列表上的答案 http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-January/028991.html似乎坏消息是问题无法解决,但好消息是这意味着使用 LLVM 不会使问题变得更糟,所以我可以自由地这样做并获得其中的所有优势。

最佳答案

您可能想查看 LLVM在沿着这条特定的道路走下去之前。它可能会让你的生活更轻松,因为它提供了一个 low level virtual machine这使得很多困难的事情都变得可行并且非常受欢迎。

关于linux - 汇编程序是否可以在 Linux 发行版之间移植?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2157636/

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