C可执行文件可以在所有操作系统上运行吗?

拉克什曼·西达莎(Lakshman Siddartha)

如果我在操作系统(例如Windows)中创建C可执行文件,则该文件可以在其他操作系统(例如Linux,Mac-OS)上运行。

用户名

试图给出一个完整的答案,这将是一个理论上的“是”,而实际上却是一个“”。

首先要了解的是:由C编译器创建的二进制可执行文件与由编译器为其他某种语言创建的二进制可执行文件没有任何相关之处。因此,以下内容与C无关。

有两个问题。操作系统具有不同的文件格式来存储二进制文件(通常由代码,数据等部分组成,以及一些告诉系统将其放置在何处,要执行的重定位等的元信息)。然后,操作系统还以某种方式将其API公开给二进制文件(对于Windows,则是一组系统DLL)。

事实上,只要处理器架构是一样的,你可能仍然运行在另一个系统上的二进制文件。您只需要一些软件即可:a。)知道如何加载Windows二进制文件; b。)将win32 API调用转换为目标平台的API调用。这就是葡萄酒的作用。

我只是猜想您来自哪里,所以我已经读过有关C独立于平台的信息。的确如此,但仅适用于源代码只要您有可用的C编译器,仅使用标准C的AC程序就可以在任何平台上编译(然后运行)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么“可执行文件”操作系统依赖于?

是否可以使用Go编译器为其他操作系统分发可执行文件?

npm链接“该文件被标记为可执行文件,但无法由操作系统运行。”

检测系统是否可以运行amd64可执行文件

无法在Linux上运行Pyinstaller可执行文件

在ASLR系统上运行非位置无关的可执行文件

无法以32位可执行文件(在64位操作系统上)以编程方式访问EFS文件

自动挂载的NTFS分区上的所有文件都标记为可执行文件

有什么方法可以阻止用户创建可执行文件并运行它们?

MS Visual Studio Professional 2013-C ++可以为32位和64位操作系统编译单个可执行文件吗?

在NTFS分区上运行可执行文件?

在Debian上的系统启动时运行可执行文件

在HPUX上,如何列出所有正在运行的进程的可执行文件的完整路径?

获取有关Linux系统上Windows可执行文件的信息

如何在Linux上列出可执行文件的所有正在运行的实例?

如何验证Windows XP POS操作系统可执行文件的真实性?

在带有SysvInit的操作系统上,“ reboot”和“ halt”符号链接到某些可执行文件吗?

如何在arm64系统上运行armhf可执行文件?

如何使所有可执行文件都可以管理员身份运行?

尝试在Linux系统上运行可执行文件时出错

无法在挂载分区上运行可执行文件

使用 CodeBlocks + GCC 构建的可执行文件可以在任何 Windows 上运行吗?

在标有执行权限的 NTFS 分区上运行 Linux 可执行文件

您可以在网页上运行 java 可执行文件吗?

如何在 LINUX 中创建自我可执行存档文件?在任何操作系统中创建 Makeself 自可执行文件的步骤是什么?

使用 .Net 3.1 的 WPF - Process.Start Excel 文件错误:“指定的可执行文件不是此操作系统平台的有效应用程序。”

如何使可执行文件在所有系统上运行

适用于每个操作系统的 Python 可执行文件

调用可执行文件以在所有文件夹 cmd 或 powershell 中执行命令