it-swarm.com.de

Wie installiere ich gcc-4.1?

1) Ich benötige gcc-4.1 für Matlab mex, kann es aber mit apt-get install nicht vollständig installieren:

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) Ich habe jetzt nur gcc-4.1-base und -multilib installiert. Beim Kompilieren der mex-Datei:

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

Mit libstdc ++ 6-4.1-dev stimmt etwas nicht. Also ging ich zu http://packages.ubuntu.com/maverick/gcc-4.1 und lud libstdc ++ 6-4.1-dev_4.1.2-27ubuntu1_i386.deb herunter. Kann es aber nicht installieren:

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

Vielen Dank

5
eminemya

Nach einigem Suchen nach gcc-4.1 & g ++ - 4.1 in Ubuntu 10.10 (Einzelgänger) fand ich eine leichte Lösung.

Zum Ende von /etc/apt/sources.list hinzufügen source from 10.04 (lucid)

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

Dann renne

Sudo apt-get update

Sie müssen Version 4.1.2-27 angeben, da libstdc ++ 6-4.1-dev nicht auf 4.1.2-29 zurückportiert wurde.

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
4
fuzzyheaddave

Ich bin mir nicht sicher, ob es ordnungsgemäß funktioniert, wenn Sie die Abhängigkeiten überschreiben und Ihre eigene Deb-Aktion ausführen, aber es ist einen Versuch wert.

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

und ändern Sie die Abhängigkeit in ein> anstelle eines =

cd ..  
debuild  

Es könnte klappen...

Eine andere Option ist die Verwendung von Update-Alternativen zum Zurücksetzen Ihrer Versionen (sicherer).
Eine weitere Option besteht darin, die Versionsnummer in der vom Build geforderten Abhängigkeit zu ändern
Zwei der drei können jedoch Ihre Paketverwaltung unterbrechen.

Die letzte und beste Möglichkeit besteht darin, aus dem Quellcode in ~/src zu kompilieren und die benötigten Versionen in /opt zu installieren und das Installationsprogramm anzuweisen, dort nach Abhängigkeiten zu suchen

1
RobotHumans

Ubuntu ist bestrebt, die alte "Hölle der Abhängigkeiten" zu umgehen, indem sichergestellt wird, dass Distributionen in ihren Bibliotheken selbstkonsistent sind. Durch die Verwendung von kommerzieller Software (Matlab), die einige Jahre zurückliegt, haben Sie ein MEX-System, das nicht für Maverick bereit ist.

Wie in aking1012 vorgeschlagen, müssen Sie einige wichtige Rollbacks von Versionen durchführen. Man könnte wahrscheinlich sagen, dass man nicht den Kuchen der Ubuntu-Bequemlichkeit haben und auch nicht das altmodische MEX-Zeug essen kann (oder auch nicht, ohne sich ein bisschen zu ärgern).

1
msw

libstdc++6-4.1-dev ist in Maverick nicht verfügbar - es war zuletzt verfügbar in Lucid

Sie können eine spätere Version von GCC installieren. Sie erhalten eine Warnmeldung, aber der MEX wird weiterhin kompiliert.

Wenn Sie MATLAB R2010b erhalten, können Sie mit GCC 4.3 rollen

Anweisungen hierzu finden Sie unter: https://help.ubuntu.com/community/MATLAB#MEX%20functions

0
jhaitas