这是一个特定的海湾合作委员会相关问题。我有一个用 g++ 4.1.2 编译的库,我想提供给用户。用户可以在他们的代码中使用我们的 API 并链接我们的库来创建最终的可执行文件。
我的问题与 g++ 版本兼容性有关。我们的一些用户使用 g++ 4.4.3,其他用户使用 4.3.3,还有一些用户使用 4.2.1。使用 4.1.2 编译的库是否与所有这些 g++ 版本兼容?我的猜测是它们应该是这样,因为它们是 ABI 兼容的。但我们的一些客户不同意。我真的不想发布同一个库的四个不同版本。如果它们不兼容,是否有具体原因或有办法避免不兼容?
只要两个库使用相同的 ABI(应用程序二进制接口),它们就可以相互兼容。据我记得,GCC 上次正式更改 ABI 是在 v3.3 或 v3.4 中。
然而,这仅适用于合规的代码。任何依赖未记录或未指定行为的源可能会中断,恕不另行通知。
所以答案是:你的编译器版本都是兼容的;问题是源代码是否是。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)