[Python-de] Probleme mit readline kompilation

Marek Kubica pythonmailing at web.de
Son Okt 31 20:43:46 CET 2004


On Sun, 31 Oct 2004 20:22:22 +0100
Mirko Tasler <mirko at tasler.net> wrote:

> Lass mich raten: libreadline4-dev war selbstkompiliert? 
Falsch geraten. Das war die ganz normale Woody sparc libreadline4-dev.
Ich versuche so wenig wie möglich auf dieser Maschiene zu kompilieren,
ich nehme viel lieber ältere debs.

> Darauf weisst nämlich das
> -L/usr/local/lib
> hin... (s.u.)
Da sollte sie eigentlich nicht sein, in /usr/local/ habe ich nur Python
2.3.4 (schon vorher ohne readline kompiliert), Ruby 1.8.1 (auch
selbstgemacht) und netcount. Debian tut von sich aus ja nichts in
/usr/local.

> > Der o -> so Befehl war:
> > gcc -pthread -shared Modules/readline.o -L/usr/local/lib -lreadline
> > -o Modules/readline.so 
> 
> Du hast wohl den -L...-Pfad selber ergänzt? In diesem Verzeichnis
> guckt der gcc dann nach gewünschten/benötigten libs, und falls
> ./configure dieser Pfad unbekannt ist und es die libreadline daher
> nicht findet, wird es das readline-Modul wohl auskommentieren.
Nein, ich habe mal ein python2.3 setup.py build_ext laufen lassen, damit
versucht er die Module zu kompilieren. Dann habe ich einfach den
Kompilierungsbefehl von irgendeinem anderen Modul genommen (k.A
welches, ist ja auch egal) und dort statt dem alten Namen readline
geschrieben. Das hat funktioniert, aber readline.so wollte nicht geladen
werden, da es ja nicht gegen die libreadline gelinkt wurde. Aus meiner
pyogg und pyvorbis Zeit wusste ich noch das ich ein -lreadline anhängen
musste, und dann hat's letztendlich funktioniert.

> > Warum so schwer? Warum wird readline nicht gleich gefunden und
> > kompiliert, da es ja auf meinem System ganz eindeutig möglich ist?
> 
> Sei froh, dass Du nicht versucht hast, Python auf HPUX oder Irix mit
> deren nativen Compilern (also nicht mit gcc) zu kompilieren. ;)
Deswegen habe ich auf der Machine auch kein Solaris/SunOS mehr *g*

> > Und: könnte mir jemand den *richtigen* Befehl sagen mit dem man von
> > Hand die readline.o erstellen kann (ich finde im Makefile nichts,
> > und von C habe ich eigentlich auch kaum Ahnung)
> 
> Vermutlich fehlt /usr/local/lib in Deiner /etc/ld.so.conf (Pfad
> ergänzen, dann ldconfig aufrufen).
Daran wird's nicht gelegen haben (s.o.).

Danke trotzdem! Andere Vorschläge? Übrigens hat ./configure auch alles
schön gefunden, soweit ich weis.

grüße,
Marek