Linux 中的静态链接可移植吗?我的意思是,我可以在 gcc 中使用 -static 选项并静态链接每个依赖项,以便从 ldd 获得干净的输出,并期望生成的可执行文件可以在另一台安装了 Linux 的计算机?当然前提是CPU架构和内核版本兼容。
最佳答案
简短的回答:差不多。
这将生成一个二进制文件,该二进制文件将在与设计软件的内核相同或兼容的内核上运行。
它可能不考虑目录结构,并且如果二进制文件期望能够动态加载任何外部依赖项,则这可能不起作用。
假设没有什么太奇特的事情发生,它会工作得很好。
这大概就是 Go 编译器为实现将二进制文件传送到几乎任何地方所做的事情。如果您希望进行具有破坏性的操作系统升级,这也是一种使构建向前兼容的方法。
此外,这些静态二进制文件可以在与 Linux 兼容的 FreeBSD 内核中运行。只要内核和用户空间兼容,二进制文件就应该可以工作。
一如既往,测试。
关于c++ - Linux 中的静态链接可移植吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31801824/