c - 二进制可执行文件是可移植的

标签 c

C 程序编译完成后,是否可以将二进制可执行文件在另一个没有加载 gcc 的系统上运行,例如 Ubuntu box?

最佳答案

技术上:是的,但如果您需要最大的可移植性,请使用静态链接


严格来说你不需要gcc,但你可能需要各种库。默认情况下,语言处理器生成 dynamically linked binaries这需要以库的形式提供广泛的运行时支持,并且必须在目标系统上找到兼容的版本,可以替代您在开发主机上链接的版本。

这要求目标是同一操作系统的相似版本,例如,linux 到 linux。版本倾斜还有更多微妙的问题。在 Windows 上,这称为 DLL-hell .

您可以通过 static linking 将自己从这些担忧中隔离开来.这将使可执行文件更大并且它不再共享内存(除了自身的额外实例)但程序将能够在更多目标版本偏差中生存。

关于c - 二进制可执行文件是可移植的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4101239/

相关文章:

c - 如何使用 c 清除文件的内容?

c - 使用数组实现最大大小为 5 的固定大小队列

C 语言中可以使用运算符来定义数组的大小吗?

c# - 如何在 C# 中将 IntPtr 转换为 Boolean[]?

C99:为什么我的字符串改变了?

C Storage类的区别?

c - 为什么不让我使用 scanf() 向字符输入值?

c - 尝试编写一个采用特定长度数组的函数,得到奇怪的不一致结果而没有错误

c - GSL 特征值代码

c - 我怎样才能改变这些变量?