Как установить gcc-4.1?

1) Мне нужен gcc-4.1 для использования в Matlab mex, но я не могу установить его полностью с помощью apt-get install:

The following packages have unmet dependencies:
libstdc++6-4.1-dev : Depends: gcc-4.1-base (= 4.1.2-27ubuntu1) but 4.1.2-29ubuntu1 is     to be installed
Depends: g++-4.1 (= 4.1.2-27ubuntu1) but it is not going to be installed
E: Broken packages

2) Теперь у меня есть только gcc-4.1-base и -multilib установлен. При компиляции mex-файла:

/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status

Что-то не так с libstdc ++ 6-4.1-dev. Поэтому я пошел на http://packages.ubuntu.com/maverick/gcc-4.1 и скачал libstdc ++ 6-4.1-dev_4.1.2-27ubuntu1_i386.deb. Но не могу установить его:

Dependency is not satisfiable: g++-4.1 (= 4.1.2-21ubuntu1)

Спасибо

5
задан 12 November 2010 в 17:15

4 ответа

После нескольких поисков, чтобы получить gcc-4.1 & amp; g ++ - 4.1 в Ubuntu 10.10 (maverick), я нашел легкий способ обойти.

Добавьте в конец /etc/apt/sources.list источник из 10.04 (lucid)

deb http://mirrors.us.kernel.org/ubuntu/ lucid main universe

Затем выполните

sudo apt-get update

Необходимо указать версию 4.1.2 -27, так как libstdc ++ 6-4.1-dev не был портирован на 4.1.2-29.

sudo apt-get install gcc-4.1=4.1.2-27ubuntu1 gcc-4.1-base=4.1.2-27ubuntu1 cpp-4.1=4.1.2-27ubuntu1 g++-4.1
0
ответ дан 12 November 2010 в 17:15

Ubuntu стремится избежать старого «ада зависимостей», гарантируя, что дистрибутивы самосогласованы в своих библиотеках. Используя коммерческое программное обеспечение (Matlab), которое отстает на несколько лет, вы получаете систему MEX, которая не готова к Maverick.

Как предложено aking1012 , вам нужно сделать несколько существенных откатов версий. Вероятно, можно сказать, что вы не можете получить удовольствие от Ubuntu, а также есть старые вещи MEX (или нет, не задумываясь).

0
ответ дан 12 November 2010 в 17:15

Не уверен, будет ли он работать правильно, если вы переопределите зависимости и бросите свой деб, но это стоит попробовать.

apt-get build-dep deb-name-here  
apt-get source deb-name-here  
cd package-dir/deb  
nano control 

и измените зависимость на a> вместо an =

cd ..  
debuild  

Это может сработать ...

Другой вариант - использовать альтернативные варианты обновления для броска - вернуть ваши версии (безопаснее)
еще один вариант - изменить номер версии в зависимости, требуемой для сборки
, хотя два из трех могут нарушить управление вашим пакетом.

Последний и лучший вариант - это скомпилировать из исходного кода в ~/src и установить в /opt для нужных вам версий, и сказать установщику, чтобы искать там зависимости

0
ответ дан 12 November 2010 в 17:15

libstdc++6-4.1-dev недоступно в Maverick - последнее доступно в Lucid

Вы можете установить более позднюю версию GCC. Вы получите предупреждающее сообщение, но MEX все равно скомпилируется.

Если вы получаете MATLAB R2010b, вы можете выполнить прокрутку с GCC 4.3.

. Инструкции по этому вопросу см. На:

0
ответ дан 12 November 2010 в 17:15

Другие вопросы по тегам:

Похожие вопросы: