首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >avr-gcc 3.4.0与avr-gcc 4.3.x的二进制兼容性

avr-gcc 3.4.0与avr-gcc 4.3.x的二进制兼容性
EN

Stack Overflow用户
提问于 2010-10-28 15:13:29
回答 1查看 319关注 0票数 2

我继承了一个应用程序,它链接到一个可能是用gcc3构建的库。或者可以使用imagecraft编译器。这些信息现在已经消失在天国的位域中,我只剩下一个libXXX.a库来链接我的应用程序。我不能重新编译libXXX.a,因为它需要来自imagecraft和其他地方的某些未知标头,这些标头在某一时刻可能在我的环境中无处不在,但现在却无处可寻。

我的问题是,假设我用avr-gcc 3.4.0版(并链接到那个“特殊的”libXXX)编译我的应用程序产生了一个可工作的二进制图像,那么有理由期望我可以用avr-gcc 4编译我的应用程序的所有其他部分(这个操作有一些非常好的和被证明的好处),用libXXX链接还能得到一个正常工作的程序吗?

从本质上讲,这一切都可以归结为: avr-gcc二进制文件是否与“神秘的编译器X,这可能是avr-gcc 3.0的东西”兼容?

老实说,我已经成功地用avr-gcc4编译了我的应用程序的其余部分,并将其与库链接起来,并验证了结果是有效的,但是我应该注意什么样的副作用或怪癖?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-28 18:55:58

如果两个编译器使用相同的ABI (应用程序二进制接口),则来自不同编译器(或-versions)的链接库将可靠地工作。

特定平台的ABI通常由该平台的主要编译器指定,但这可以通过引用外部规范来完成。

ABI更改很少,特别是当平台支持第三方库/应用程序时,因为ABI更改意味着必须重新构建所有内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4040609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档