静态库可移植性

Aka*_*ata 5 c++ linux linker static-libraries

简短的问题。如果我已经编写了 C++ 静态库并在 Ubuntu 上使用 G++ 编译它,我可以安全地假设可以在其他 Linux 发行版上使用 G++ 链接它吗?

πάν*_*ῥεῖ 4

二进制文件在 Linux 系统之间不能任意互换,无论是可执行文件、静态库还是共享库。

这就是为什么几乎所有软件包都作为源代码分发,并且您的软件包管理器系统负责如何配置和编译它们。

也就是说,应该在不公开实际源代码的情况下分发的商业软件通常由供应商针对各种 Linux 发行版进行(交叉)编译。

  • @AkasataAkasata 对于开源,您可能会考虑提供一个 _automake 包_,对于商业,您必须为您认为支持的各种发行版进行编译,并提供二进制文件。 (2认同)