0

我刚刚在我的 Asus 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 包管理器。在升级之前,Ubuntu 提供了 GCC 4.4,尽管我也通过另一个存储库安装了 GCC 4.5 (gcc-4.5)。GCC 4.5 现在是 Ubuntu 11.04 中的默认值。

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

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

有什么方法可以使用 Synaptic 包管理器来获取 G++ 的最新工作版本?

4

2 回答 2

0

操作词:-- reinstall

sudo apt-get install libstdc++ --reinstall

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

于 2011-05-02T09:20:14.347 回答
0

GCC-4.6 在 ; 中发现了一个旧的、不兼容的 libgcc.a 版本$LIBRARY_PATH。就我而言,这也是$LIBRARY_PATH. 该条目曾经是$G95/g95-install/lib/gcc-lib/i686-unknown-linux-gnu/4.0.3/并且与 G95 Fortran 编译器相关。前段时间我自己在 .bash_profile 中完成了这项工作,因为当时我经常将 C++ 程序链接到同一目录中的 libfortran.a 库。删除此条目解决了我的问题。将来我会在这种情况下使用 -L 切换到 GCC。

于 2011-05-09T09:16:56.747 回答