C程序应该以哪种格式导出才能在Linux上运行?

C程序应该以哪种格式导出才能在Linux上运行?

在 Windows 中我们发布应用程序。EXE文件格式,所以我有 C 程序,我想为 Linux 发布该应用程序。我应该以哪种格式发布以及如何发布?

答案1

Linux 使用的主要二进制格式称为极低频,最初是为Unix发明的。ld程序可以产生(关联) 来自目标文件的它们。 Linux还可以支持不同的可执行格式;可以编写一个自定义加载程序来加载 Windows 的“exe”(可移植可执行文件)文件并运行它们。

顺便说一句,“.exe”不是一种格式,而是一个文件扩展名。它曾经至少有两种来自微软的不同格式:较旧的 DOS“MZ”格式以及最近的Windows PE格式。不仅“exe”文件具有PE格式; “dll”(动态库)原则上具有相同的结构,以及许多其他文件。同样,在 Linux 中,不仅调用的二进制文件具有 ELF 格式,而且共享动态库也具有 ELF 格式,但通常这些库的扩展名为“.so”,或“.so.1.3.4”(版本形式,数字代表版本)图书馆)。您调用的二进制文件通常没有扩展名;可执行程序的属性来自文件系统属性“可执行”,而不是从文件名(扩展名)推断出来。

然而,这个问题非常广泛。尝试搜索“linux c 编程教程”来了解生成二进制可执行文件的过程是什么样的,然后提出更具体的问题。

相关内容