【发布时间】:2020-04-27 17:00:52
【问题描述】:
给定一些纯机器语言命令,例如以下字节:
1011100010011010000000100000000000000000
11000011
(取自:How to write and execute PURE machine code manually without containers like EXE or ELF?)?我知道通常需要一个 .EXE、ELF 或 .OUT 包装器,但据我所知,这些格式是特定于平台的,只是为了能够双击并运行它们。
是否存在可以跨windows、linux、mac双击运行相同机器码(假设没有外部依赖)的文件格式?
【问题讨论】:
-
我不知道没有安装的东西。 Linux + Mac 可能会在 bash 之类的东西中协同工作,但 Windows 不行
-
@afghanimah 嗯,很有趣,所以没有任何东西可以在所有 3 中本地双击(甚至只是在终端中运行)? unity的跨平台游戏构建是如何工作的?
-
Unity 使用 C#,所以它使用 C# 的跨平台机制(即 .net 字节码),加上一些针对各种操作系统的自定义代码,我敢肯定。
-
@ErikEidt 你是什么意思,C# 肯定会编译成机器语言吗?但即便如此实际相同的程序可以在任何平台上双击,它是如何工作的?
-
@bluejayke Unity 只是带有一些 Unity 库的 C#,这些库编译为 IL,由 .NET 或 Mono Runtime 通过使用 JIT 编译器将 IL 转换为您正在使用的机器的机器代码来解释。
标签: cross-platform exe elf out machine-language