如果我在操作系统(例如Windows)中创建C可执行文件,则该文件可以在其他操作系统(例如Linux,Mac-OS)上运行。
试图给出一个完整的答案,这将是一个理论上的“是”,而实际上却是一个“大”。
首先要了解的是:由C编译器创建的二进制可执行文件与由编译器为其他某种语言创建的二进制可执行文件没有任何相关之处。因此,以下内容与C无关。
有两个问题。操作系统具有不同的文件格式来存储二进制文件(通常由代码,数据等部分组成,以及一些告诉系统将其放置在何处,要执行的重定位等的元信息)。然后,操作系统还以某种方式将其API公开给二进制文件(对于Windows,则是一组系统DLL)。
事实上,只要处理器架构是一样的,你可能仍然运行在另一个系统上的二进制文件。您只需要一些软件即可:a。)知道如何加载Windows二进制文件; b。)将win32 API调用转换为目标平台的API调用。这就是葡萄酒的作用。
我只是猜想您来自哪里,所以我已经读过有关C独立于平台的信息。的确如此,但仅适用于源代码。只要您有可用的C编译器,仅使用标准C的AC程序就可以在任何平台上编译(然后运行)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句