我这里有些人的代码需要用 gcc-3.3 编译。我们有一个 CentOS 5.2。
当我们用他们的 make 文件编译它时,它在链接过程中失败,他们说这是因为它不适用于已经安装的 gcc-3.4。有什么我需要告诉他们更改以使其运行的东西,还是可以找到 gcc-3.3 作为 rpm 并安装它?我想,最初我问的是 gcc-3.3 和 gcc-3.4 之间有多大区别,因为 3.3 不在 CentOS 5.2 安装媒体中。
或者,是否可以将 compat-gcc-3.2 安装在也具有 compat-gcc-3.4 的发行版上?
添加:
错误是
/usr/include/c++/3.2.3/bits/stl_alloc.h:248: undefined reference to std::__default_alloc_template<true, 0>::deallocate(void *, unsigned int)
所以我怀疑可能链接了错误的标题或库。通过安装 compat-gcc-32,代码可以编译和链接,但在尝试执行任何字符串操作时会出现段错误。很可能对任何被破坏的东西的第一次访问恰好是某种字符串操作。