0

AsusEeePCネットブックでUbuntu11.04にアップグレードしたところ、G++に問題があります。G ++を使用してプログラムをコンパイルすると、iostream、cstdio、stdio.hのいずれを使用していても、単純な「Hello World」でさえ、次のメッセージで失敗します。

/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

SynapticPackageManagerを使用しています。アップグレードの前に、UbuntuはGCC 4.4を提供していましたが、別のリポジトリを介してGCC 4.5(gcc-4.5)もインストールしていました。GCC4.5がUbuntu11.04のデフォルトになりました。

問題はlibgccに関係しているのではないかと思います。GCCを再インストールしようとしましたが、libgccを削除できませんでした。まず、Synaptic Package Managerが、どこかに壊れたパッケージがあることを報告し、試行を停止しました。ただし、libgccを削除するには、aptやFirefoxを含むほぼすべてのアプリケーションを削除する必要があることにも注意しました。

gcc-snapshotパッケージも試しました。残念ながら、上記と同じエラーが発生します。

Synaptic Package Managerを使用して、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/、G95Fortranコンパイラに関連しています。私はこれを少し前に.bash_profileで行っていましたが、当時は、C++プログラムを同じディレクトリのlibfortran.aライブラリにリンクすることがよくありました。このエントリを削除すると、問題が修正されました。将来的には、このような状況ではGCCへの-Lスイッチを使用する予定です。

于 2011-05-09T09:16:56.747 に答える