C 程序编译完成后,是否可以将二进制可执行文件在另一个没有加载 gcc 的系统上运行,例如 Ubuntu box?
最佳答案
技术上:是的,但如果您需要最大的可移植性,请使用静态链接
严格来说你不需要gcc,但你可能需要各种库。默认情况下,语言处理器生成 dynamically linked binaries这需要以库的形式提供广泛的运行时支持,并且必须在目标系统上找到兼容的版本,可以替代您在开发主机上链接的版本。
这要求目标是同一操作系统的相似版本,例如,linux 到 linux。版本倾斜还有更多微妙的问题。在 Windows 上,这称为 DLL-hell .
您可以通过 static linking 将自己从这些担忧中隔离开来.这将使可执行文件更大并且它不再共享内存(除了自身的额外实例)但程序将能够在更多目标版本偏差中生存。
关于c - 二进制可执行文件是可移植的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4101239/