是与gcc-4兼容的gcc-3二进制文件

时间:2011-05-06 15:24:31

标签: c++ c compatibility gcc4 gcc3

我有一个用gcc 3.4.3编译的静态库。我想在现在用gcc-4编译的代码中使用它。 我含糊地读到gcc-3和gcc-4二进制文件不兼容,并且需要重新编译库,但只是想对此进行确认。 不管怎样,gcc-3库可以和gcc-4一起使用吗?

1 个答案:

答案 0 :(得分:3)

让其他人进入组织或供应商,将他们的库更新为gcc 4并不总是一种选择,特别是如果他们放弃了它。

如果C ++:假设能够链接,在运行时你可以用C ++标准库模板代码来使用流,因为g ++ 4生成的符号是根据g ++ 3生成的定义解析的。

链接时可能会看到此警告:

/ usr / bin / ld:警告:(遗留静态库)所需的libstdc ++。so.5可能与libstdc ++冲突.so.6

这是一个你可以进入的例子:基类析构函数~basic_stringbuf()(实际上是一个模板)可以在g ++ 3下编译的模块中定义,它被libstdc ++中的析构函数~basic_ostringstream()错误地调用.6,由g ++ 4编译模块调用。嘉臂架。

我尝试过compat-libstdc ++ - 33但是没有运气。

也就是说,我仍然将32位gcc 3时代的C库链接到我的gcc 4.1.2 C ++程序中。

相关问题