我继承了一个链接到可能已经用 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 编译了我的应用程序的其余部分并将其与库链接,并验证结果有效,但我应该注意什么样的副作用或怪癖?