2015-09-27 2 views
1

Я установил последнюю версию g ++. Я загрузил оборотов в минуту от here и я установил его на моей машине Ubuntu (версия Precise 12,04 LTS), используя следующие командыне может скомпилироваться после установки нового g ++

rpm -i gcc-c++-5.2.1-0.20150811.6.mga6.x86_64.rpm 
sudo alien -i gcc-c++-5.2.1-0.20150811.6.mga6.x86_64.rpm 

Я могу видеть, что новая версия компилятора была установлена ​​в

/usr/bin/g++-5.2.1 

, но когда я пытаюсь скомпилировать файл я получаю следующую ошибку

/usr/lib/gcc/x86_64-mageia-linux-gnu/5.2.1/cc1plus: 
error while loading shared libraries: libisl.so.13: 
cannot open shared object file: No such file or directory 

должен ли я установить дополнительные обороты или мех Эти файлы? Я искал на своем компьютере, и у меня действительно нет этой общей библиотеки.

+0

Отсутствует зависимость – Nevermore

+2

Никогда, никогда не смешивайте пакеты с различными дистрибутивами linux. Отмените все, что вы сделали, и найдите PPA, предоставляя g ++ 5.2. –

+0

Возможно, это из-за несоответствий конфигурации. Проверьте, есть ли у вас libisl.so, и если у вас есть это, попробуйте найти способ изменения пути поиска. Если у вас его нет, вы знаете, что делать. –

ответ

2

Ну, к сожалению, вы что-то сделали очень плохо. У вас есть смешанные пакеты из разных дистрибутивов Linux, что означает, что вы, возможно, уже нарушили свою систему. Я не знаю, как правильно удалить пакет rpm, который вы установили. На самом деле, я не знаю, как вы установили rpm на свой Ubuntu. И если у вас есть менеджер пакетов rpm, я не знаю, почему вам нужно использовать alien, который по существу конвертирует rpm в deb, что не является необходимым, если у вас есть менеджер пакетов rpm. Таким образом, уничтожение вещей, которые вы совершили, может быть затруднено. Если бы я был вами, я бы сделал rpm -e <package-name>, чтобы удалить пакет, и обратите внимание, что у иностранца нет такой опции удаления. Если вам посчастливилось спасти вашу систему от мусора, я бы пошел искать PPA (личный пакетный архив), который содержит g++5.2. Поскольку PPA являются родными для менеджера пакетов deb, который является менеджером пакетов Ubuntu, вы обычно можете использовать их без вреда, они автоматически устанавливают необходимые зависимости.

Но, к сожалению, я не смог найти PPA, содержащую последнюю версию g ++. Итак, вы должны согласиться с 5.1.

Вот инструкции:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update 
sudo apt-get install gcc-5 g++-5 

Если вы хотите Linux дистрибутива края завальцовки релизов, вы можете захотеть взглянуть на Arch Linux, что обеспечивает г ++ 5.2 по умолчанию. Возможно, вы захотите установить его на виртуальной машине.

Или вы можете установить g ++ из источника. Google для этого!

+1

HI jnbrq, Большое спасибо за ответ. Чтобы безопасно удалить, вы должны использовать «синаптический» и нажимать на панель «Пакеты RPM, установленные с Alien» для безопасного удаления. –

+0

@AbruzzoForteeGentile Ну, это было долгое время, когда я не использовал 'alien', я даже не знал, что он может работать вместе с' синаптической'. –

+1

Ну .. Я не могу сказать, что я ничего не знаю об этом .. :) Я использую Ubuntu в первый раз. В любом случае независимо от того, что ваши вещи помогли мне сегодня, так что воскресенье счастливо! Приятного уик-энда и еще раз спасибо! –

0

Следуя совету по пользователю «jnbrq» об использовании PPA в Ubuntu я сделал следующее

Installed Synaptic удалить пакет RPM, преобразованный чужеродные

sudo apt-get install synaptic 

Затем добавили правильный PPP, что позволяет установить последняя версия g ++

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update 

После этого синаптика снова для поиска g ++ - 5.1 и установите последнюю версию.

Смежные вопросы