如果您在基于Linux的平台上用C编译程序,然后将其移植为使用MacOS库,它将起作用吗?
来自编译器的核心机器代码是否在Mac和Linux上都兼容?
我之所以这样问,是因为两者都是基于“ UNIX”的,所以我认为这是真的,但是我不确定。
否,Linux和Mac OS X二进制文件不是交叉兼容的。
一方面,Linux可执行文件使用一种称为ELF的格式。
Mac OS X可执行文件使用Mach-O格式。
因此,即使通常在每个系统上分别编译许多库,它们也不会以二进制格式移植。
此外,Linux实际上并非基于UNIX。它确实与UNIX共享许多通用功能和工具,但是其中很多与诸如POSIX之类的计算标准有关。
编辑:
最后,要解决关于字节码的问题:制作二进制文件时,编译器通常会生成特定于您正在开发的平台的机器代码。(并非总是如此,但通常是这样。)