G ++ всегда терпит неудачу с неопределенной ссылкой на _Unwind_GetIPInfo - PullRequest
0 голосов
/ 02 мая 2011

Я только что обновился до Ubuntu 11.04 на моем нетбуке Asus EeePC, и у меня проблема с 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 голосов
/ 09 мая 2011

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 для таких ситуаций.

0 голосов
/ 02 мая 2011

Рабочее слово: - переустановить

sudo apt-get install libstdc++ --reinstall

Добавить весь пакет, который вы подозреваете, поврежден

...