我想分发一个静态C库(.a)作为二进制文件。
给定特定的CPU架构和平台(例如armv6 / Raspi):
- 是否可以创建单个二进制文件,适用于所有不同的GCC版本,即是否有跨不同GCC版本的ABI?
- 是否可能还可以从Clang使用相同的二进制文件?
如果不能,我需要为哪些GCC版本创建不同的二进制文件?是否可以使用非常旧的GCC来构建二进制文件,并期望新的GCC版本正确链接它?
如果需要多个二进制文件:有没有流行的软件被分发为静态库(.a文件),可以作为参考,了解如何做到最佳实践?
共享对象(.so)是否比静态库(.a)更好?是否有Linux定义的ABI允许使用不同GCC版本编译的程序导入.so或.a库?
此问题与C ++无关。所讨论的库仅使用C99并且完全可移植,即甚至不依赖于标准库。
给定特定的CPU架构和平台(例如armv6 / Raspi):
- 是否可以创建单个二进制文件,适用于所有不同的GCC版本,即是否有跨不同GCC版本的ABI?
- 是否可能还可以从Clang使用相同的二进制文件?
如果不能,我需要为哪些GCC版本创建不同的二进制文件?是否可以使用非常旧的GCC来构建二进制文件,并期望新的GCC版本正确链接它?
如果需要多个二进制文件:有没有流行的软件被分发为静态库(.a文件),可以作为参考,了解如何做到最佳实践?
共享对象(.so)是否比静态库(.a)更好?是否有Linux定义的ABI允许使用不同GCC版本编译的程序导入.so或.a库?
此问题与C ++无关。所讨论的库仅使用C99并且完全可移植,即甚至不依赖于标准库。