繁体   English   中英

g ++版本兼容性

[英]g++ version compatibility

这是一个特定的gcc相关问题。 我有一个用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。

但是,这仅适用于兼容代码。 依赖于未记录或未指定行为的任何来源可能会在不另行通知的情况下中断。

所以答案是:你的编译器版本都是兼容的; 问题是源代码是否是。

简而言之,是的。 如果您的应用程序不使用新GCC的功能,您可以使用较旧的GCC安全地编译它。 GCC是向后兼容的,使用较旧的GCC库构建的应用程序不会在较新版本上中断。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM