G ++始终失败,未定义引用_Unwind_GetIPInfo

时间:2011-05-02 09:09:02

标签: linux gcc ubuntu g++ apt

我刚刚在我的华硕EeePC上网本上升级到Ubuntu 11.04,并且遇到了G ++问题。使用G ++编译任何程序,即使是简单的“Hello World”,无论是使用iostream,cstdio还是stdio.h,都会失败并显示以下消息:

/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.so: undefined reference to `_Unwind_GetIPInfo@GCC_4.2.0'
collect2: ld returned 1 exit status

我使用Synaptic Package Manager。在升级之前,Ubuntu提供了GCC 4.4,尽管我还通过另一个存储库安装了GCC 4.5(gcc-4.5)。 GCC 4.5现在是Ubuntu 11.04的默认设置。

我认为问题可能与libgcc有关。我尝试重新安装GCC,但是我无法删除libgcc:首先,Synaptic Package Manager报告说某处有破坏的软件包,并停止了我的尝试;但我也注意到删除libgcc几乎需要删除所有应用程序,包括apt和Firefox。

我也尝试了gcc-snapshot包;不幸的是,它给出了上面列出的相同错误。

有没有办法使用Synaptic Package Manager获取最新的G ++工作版本?

2 个答案:

答案 0 :(得分:0)

操作词: - 重新安装

sudo apt-get install libstdc++ --reinstall

添加您怀疑已损坏的所有包

答案 1 :(得分:0)

GCC-4.6在$LIBRARY_PATH中找到了一个较旧的,不兼容的libgcc.a版本;就我而言,它也是$LIBRARY_PATH中的第一个条目。条目为$G95/g95-install/lib/gcc-lib/i686-unknown-linux-gnu/4.0.3/,与G95 Fortran编译器有关。我不久前在.bash_profile中做过这个,就像我当时经常将C ++程序链接到同一目录中的libfortran.a库一样。删除此条目修复了我的问题。将来我会在这种情况下使用-L开关到GCC。