【发布时间】:2010-10-28 07:13:28
【问题描述】:
我继承了一个链接到一个可能已经用 gcc3 构建的库的应用程序。或者也许使用 imagecraft 编译器。这些信息现在已经消失在天堂般的位域中,我只剩下一个 libXXX.a 库来链接我的应用程序。我无法重新编译 libXXX.a,因为它需要来自 imagecraft 和其他地方的某些未知头文件,这些头文件在某个时候可能在我的环境中无处不在,但现在无处可寻。
我的问题是,如果我使用 avr-gcc 版本 3.4.0(并链接到那个“特殊”libXXX)编译我的应用程序会产生一个工作二进制映像,那么期望我可以编译所有我的应用程序的其他部分与 avr-gcc 4(此操作有一些非常好的和经过验证的好处),与 libXXX 链接并且仍然可以获得工作程序?
基本上,这一切都归结为:avr-gcc 二进制文件是否与“可能是 avr-gcc 3.something 的神秘编译器 X”兼容?
说实话,我已经成功地用 avr-gcc4 编译了我的应用程序的其余部分并将其与库链接,并验证结果有效,但是我应该注意什么样的副作用或怪癖?
【问题讨论】:
-
这似乎是一个提及您可能已经知道的事情的好时机:备份和修订控制是您的朋友......但您需要在过去使用它们才能获得现在的好处.开始永远不会太晚,你未来的自己会感谢你;-)
-
正如我所说,我继承了这种情况......从那时起修订控制已恢复,但它仍然没有帮助我:)
标签: c gcc avr avr-gcc binary-compatibility