bgr*_*nks 24 c linux macos executable compilation
如果你在基于Linux的平台上编译一个程序,比如C,然后移植它来使用MacOS库,它会起作用吗?
核心机器代码是来自兼容Mac和Linux的编译器吗?
我问这个的原因是因为两者都是"基于UNIX的"所以我认为这是真的,但我不太确定.
通常,您可以轻松地跨各种Unix品牌移植程序。但是,您(至少)需要在每个平台上重新编译它。
可执行文件(二进制文件)在多个平台上不可用,因为可执行文件与操作系统的ABI(应用程序二进制接口)紧密结合,即应用程序与操作系统进行通信的约定。
例如,如果您的程序使用POSIX write调用将字符串打印到控制台上,则ABI指定:
sysenter指令)而且这在操作系统之间差异很大。
但是请注意,在某些情况下,可能会有“ ABI适配器”允许将一个OS的二进制文件运行到另一个OS上。例如Wine允许您在各种Unix风格上运行Windows可执行文件,NDISwrapper允许您在Linux上使用Windows网络驱动程序。
| 归档时间: |
|
| 查看次数: |
11229 次 |
| 最近记录: |