c - 如何在 Linux 上编译可在任何发行版上运行的 C?

标签 c linux gcc

如果我使用 gcc 编译一个独立的项目并静态链接 C 运行时库,这可以在任何 Linux 发行版上运行吗?我不关心任何静态链接的缺点(例如大文件大小),只要它有效即可。这是一个闭源项目,这是我无法控制的。 PC 的架构是相同的。

最佳答案

如果你能保证它将执行的所有代码都独立包含在你发布的二进制文件中,那么理论上(强调理论上)它应该可以在任何 Linux 发行版上运行。在这个过程中,存在着大量的陷阱。我个人的观点是,由于跨版本的接口(interface)变化,几乎不可能实现这项工作。与其他库的交互是一场脆弱的噩梦。

我熟悉的大多数公司(包括我自己的公司)都生产针对不同发行版的版本。必须为 SLES、Redhat 等进行构建会导致一些复杂情况,但我相信提供一些不同的构建最终会比尝试静态链接所有内容更简单,并且导致的问题更少。

关于c - 如何在 Linux 上编译可在任何发行版上运行的 C?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22642651/

相关文章:

python - 如何使用 C 读取目标文件的符号

c# - 如何从 VS2015 定位 Mono 框架?

c - C 中的 AES 文件加密

C头文件#ifndef#include错误

linux - tail -f OR less +F 如何高亮新行

c++ - C语言中函数中的switch指针

python - 任意 C 项目的预处理

c - gcc:允许 undefined symbol

c - 链接代码::阻止自定义库错误(找不到)

c - 我将哪个地址系列用于 src IPv4 和 dest IPv6?