PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wieder mal Prob mit ncurses-5.2


leon
27.08.01, 20:45
Hallo Leute

Ich versuche seit einigen Stunden ncurses-5.2 auf mein LFS-System zu installieren. Leider bricht der compiler immer mit der gleichen Fehlermeldung ab

r - ../obj_s/cursesf.o
r - ../obj_s/cursesm.o
r - ../obj_s/cursesw.o
r - ../obj_s/cursespad.o
r - ../obj_s/cursesp.o
r - ../obj_s/cursslk.o
r - ../obj_s/cursesapp.o
r - ../obj_s/cursesmain.o
ranlib ../lib/libncurses++.a
cd ../obj_s; c++ -I../c++ -I../include -I. -DHAVE_CONFIG_H -DNDEBUG -I. -I../include -O2 -fPIC -c ../c++/demo.cc
c++ -o demo ../obj_s/demo.o -L../lib -L/lib -lncurses++ -L../lib -L/lib -lform -lmenu -lpanel -lncurses -Wl,-rpath,/usr/src/packages/ncurses-5.2/lib
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2.1/libstdc++.a(streambuf.o): In function `streambuf::sgetc(void)':
/mnt/lfs/usr/src/gcc-build/i686-pc-linux-gnu/libio/../../../packages/gcc-2.95.2.1/libio/streambuf.h:397: undefined reference to `_IO_peekc_locked'
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2.1/libstdc++.a(streambuf.o): In function `streambuf::snextc(void)':
/mnt/lfs/usr/src/gcc-build/i686-pc-linux-gnu/libio/../../../packages/gcc-2.95.2.1/libio/streambuf.h:397: undefined reference to `_IO_peekc_locked'
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2.1/libstdc++.a(iostream.o): In function `istream: :peek(void)':
/mnt/lfs/usr/src/gcc-build/i686-pc-linux-gnu/libio/../../../packages/gcc-2.95.2.1/libio/streambuf.h:397: undefined reference to `_IO_peekc_locked'
collect2: ld returned 1 exit status
make[1]: *** [demo] Error 1
make[1]: Leaving directory `/usr/src/packages/ncurses-5.2/c++'
make: *** [all] Error 2

Hat da eventuell einer ne Idee, wäre sehr dankbar.

Gruss Leon

Munick
27.08.01, 22:06
Ne richtige Idee hab ich auch nicht, da bei mir ncurses immer ohne Probleme zu kompilieren war.

Das einzige, was mich bei dir verwirrt:

/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2.1/libstdc++.a...
/mnt/lfs/usr/src/gcc-build/i686-pc-linux-gnu/libio/../../../packages/gcc-2.95.2.1/libio/streambuf.h:397
^^^^^^^^^

Bist du auch sicher im LFS (chroot)? Sieht eigentlich nicht danach danach aus, eher nach einem Mix aus deinem normalen Linux und LFS...


CU

leon
28.08.01, 08:35
Stimmt Du hast Recht, er versucht unter /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2.1/libstdc

irgendetwas zu finden, kann es aber nicht deshalb " void "

So ein Mist, das kann man wohl nicht mehr zurück verfolgen. Da werde ich wohl wieder von vorne anfangen. Zum zweiten mal. Naja.
Besten Dank erstmal, ist mir gar nicht aufgefallen, das das so schlimm ist.
Vielleicht hat ja noch einer ne Rettungsidee. Wäre toll, habe einen ganzen Tag gebraucht um so weit zu kommen.

Leon

Munick
28.08.01, 12:02
Ganz von vorn brauchst du nicht mehr anfangen.

cd $LFS &&
chroot $LFS /usr/bin/env -i HOME=/root \
TERM=$TERM /bin/bash --login

Damit bist du wieder im LFS und kompilierst die Software nochmal dynamisch (ab Kapitel 6). Das statische System ist ja noch vorhanden.

CU

leon
29.08.01, 12:30
Vielen vielen Dank, werde es bei gelegenheit gleich machen. Mir kommt es aber so vor, als müsse ich den C-Compiler nochmal installieren. Was denkst Du Munick?

Auf ner anderen Maschine habe ich auch mal KDE2.2 übersetzt. Die Bibliotheken hat er noch gemacht, aber beim base-System hat er was unter /tmp gesucht und nicht gefunden. Nur mal so angefragt, hattest Du soetwas auch? Oder eine Ahnung?

Munick
29.08.01, 15:21
Also ich würde dir raten, ab Kapitel 6 des LFS-Books nochmal anzufangen, da es schwer nochzuziehen sein sollte, wann du den Fehler begangen hast. Also ab dem Punkt "
Entering the chroot'ed environment". Damit gehst du auf Nummer sicher. gcc musst du ja sowieso nochmal installieren.
Wenn das nicht klappt, musst du wohl oder übel in den sauren Apfel beißen und nochmal von vorne anfangen. Aber vielleicht klappt es ja.

Zu KDE: Bei mir ließ sich bis jetzt jede Version fast problemlos kompilieren (gab bis jetzt nur einmal ein Problem bei einem cvs-Snapshot). Unter /tmp hat er bei mir noch nie etwas gesucht. Vielleicht hat eine Option oder so gefehlt.

CU

leon
29.08.01, 15:56
Vielen Dank, ich werde es dann mal machen.

Optionen habe ich eigentlich nicht angegeben. Das einzigste war :
./configure --prefix=/opt/kde2
make
make install

wie gesagt, die Bibliotheken klappten, bei base kam dann der Fehler.
Welche Optionen gibst Du Ihm denn?

Leon

Munick
29.08.01, 16:18
Hmm, eigentlich habe ich fast die gleichen Optionen angegeben, zusätzlich nur noch --enable-objprelink.

Hast du /opt/kde2/lib in /etc/ld.so.conf eingetragen? Da könnte eine Fehlerquelle liegen. Hast du auch /opt/kde2/bin im PATH eingetragen? Auch 'ne mögliche Quelle, obwohl es beim kompilieren eigentlich egal ist. Außerdem sollte KDEDIR bei dir nach /opt/kde2 hinzeigen.

CU

leon
29.08.01, 16:58
Hallo Munick

Den Eintrag opt/kde2/lib hatte ich noch nicht, sollte aber auch nicht erforderlich sein. Habe es trotzdem nachgeholt. Den Rest hatte ich schon. Die Option --enable-objprelink werde ich mal versuchen. Was macht sie eigentlich?

Besten Dank, bin gerade dabei ab Chapter 6 alles nocheinmal zu machen.

Bis dann

Leon

Munick
29.08.01, 18:03
--enable-objprelink ermöglicht schnellere Starts von KDE-Programmen (ca. 30-50% schneller). Allerdings muss man das entsprechende Programm installiert haben und bei allen Paketen (qt, kde*) ein File patchen. Belohnt wird man aber mit einem deutlich schnelleren Start von KDE und Anwendungen. Diese Seite (http://www.research.att.com/~leonb/objprelink/howto.html) sollte dir weiterhelfen, was man alles machen muss.

/opt/kde2/lib sollte schon in der /etc/ld.so.conf eingetragen sein, ansonsten bekommst du bei jedem Programm die Fehlermeldung "Can't find *.so Noi such file or directory". Und ich bin mir nicht sicher, ob bei der Kompilierung von kdebase nicht schon libs von kdelibs benötigt werden.
Ansonsten: Mal einfach die Fehlermeldung posten.

CU

[ 29. August 2001: Beitrag editiert von: Munick ]

leon
29.08.01, 20:19
kdelibs habe ich ja schon übersetzt und installiert. Die Fehlermeldung sah aber auch nicht danach aus. Habe übrigens versucht gcc richtig auf den LFS zu installieren, endet aber mit einer Fehlermeldung.Ich poste die mal morgen, geht leider heute nicht mehr.

Wir sollten uns mal mailen, geht glaube besser.

Leon

leon
29.08.01, 20:30
Hier ist die Fehlermeldung als ich versucht habe gcc 3.0 zu übersetzen. Schon komisch.

creating libintl.h
root:/usr/src/gcc-build#make bootstrap
make[1]: Entering directory `/usr/src/gcc-build/libiberty'
if [ x"-fpic" != x ]; then \
gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../packages/gcc-3.0/libiberty/../include -W -Wall -Wtraditional -pedantic -fpic ../../packages/gcc-3.0/libiberty/argv.c -o pic/argv.o; \
else true; fi
Assembler messages:
FATAL: Can't create pic/argv.o: No such file or directory
make[1]: *** [argv.o] Error 1
make[1]: Leaving directory `/usr/src/gcc-build/libiberty'
make: *** [all-libiberty] Error 2