Huhu
Also hier läuft Suse 7.2, Kernel 2.2.17, XFree 4.2.1 auf Athlon XP 1600 mit Matrox G550
Ich hab mir heute wie im Howto (http://holarse.wue.de/index.php?content=winex_comp) beschrieben das WineX aus dem cvs gesaugt, das ./configure wie beschrieben ausgefuehrt und dann make depend && make gestartet. Dort gibts folgenden Fehler:
gcc -g -O2 -Wall -mpreferred-stack-boundary=2 -fno-keep-static-consts -D__int8=char -D __int16=short -D__int32=int "-D__int64=long long" -o winebuild import.o main.o parser .o relay.o res16.o res32.o spec16.o spec32.o utils.o -L../../unicode -lwine_unico de main.o: In function `do_output': /home/falk/wineX/wine/tools/winebuild/main.c:141: undefined reference to `atexit' collect2: ld returned 1 exit status make[2]: *** [winebuild] Error 1 make[2]: Leaving directory `/home/falk/wineX/wine/tools/winebuild' make[1]: *** [winebuild] Error 2 make[1]: Leaving directory `/home/falk/wineX/wine/tools' make: *** [tools] Error 2
Was ist da faul? Hat jemand ne Idee?
On Sun, Jan 26, 2003 at 01:03:58AM +0100, Falk Mölle wrote:
Huhu
Hallo
main.o: In function `do_output': /home/falk/wineX/wine/tools/winebuild/main.c:141: undefined reference to `atexit' collect2: ld returned 1 exit status make[2]: *** [winebuild] Error 1 make[2]: Leaving directory `/home/falk/wineX/wine/tools/winebuild' make[1]: *** [winebuild] Error 2 make[1]: Leaving directory `/home/falk/wineX/wine/tools' make: *** [tools] Error 2
Was ist da faul? Hat jemand ne Idee?
Fuer Nicht-Programmierer mal ein Einstieg im Fehlerlesen:
Der Fehler hier liegt am Linker, d.h. nachdem der Quellcode vom Compiler geparsed, fuer gut gefunden und compiliert wurde, werden im zweiten Schritt (dem Linken) die ganzen entstandenen object files zu einem ausfuehrbaren Programm bzw. Bibliothek zusammengemixt. Dabei prueft der Linker (ld), ob Funktionen, die aus externen Bibliotheken aufgerufen wurden, auch wirklich existieren und leitet entsprechende Aufrufe auf diese Bibliotheken um, der Compiler hat vorher naemlich nur geprueft, ob die Syntax der Funktionsaufrufe stimmt. In deinem Fall stellt er hier ploetzlich fest, dass er die Funktion nicht finden kann (daher "undefined reference").
Loesung: Wenn der gcc linken soll, muss man ihm sagen, in welchen Bibliotheken er suchen soll mittels "-l<NameDerBibliothek>", z.B. "lqt" fuer qt. So eine Angabe fehlt hier. Also ruestest du dich mit einem Editor deiner Wahl aus, gehst in das Verzeichnis /home/falk/wineX/wine/tools/winebuild und editierst die Datei "Makefile". Hier suchst du jetzt nach einer Variablen namens "LIBS", "WINE_LIBS" oder so aehnlich. Ein heisser Tip dabei ist, dass dahinter irgendwelche "-l<Bibliothek>" auftauchen. Dort schreibst du jetzt ein "-lc" dazu, damit auch die C-Standardbibliothek eingebunden wird.
Wenn so etwas passiert, ist das allerdings kein gutes Zeichen. Sollte das weiterhin nicht klappen, hol dir lieber die letzte stable Version. CVS ist zwar immer "bleeding edge", aber da dort auch entwickelt wird, kann das durchaus mal instabil bzw. nicht-compilierbar sein.
Mit freundlichen Grüßen
Falk Mölle
Ulf
On 26.01.03 Ulf Lorenz (s8397076@rcs.urz.tu-dresden.de) wrote:
On Sun, Jan 26, 2003 at 01:03:58AM +0100, Falk Mölle wrote:
Hallo,
main.o: In function `do_output': /home/falk/wineX/wine/tools/winebuild/main.c:141: undefined reference to `atexit' collect2: ld returned 1 exit status make[2]: *** [winebuild] Error 1 make[2]: Leaving directory `/home/falk/wineX/wine/tools/winebuild' make[1]: *** [winebuild] Error 2 make[1]: Leaving directory `/home/falk/wineX/wine/tools' make: *** [tools] Error 2
Was ist da faul? Hat jemand ne Idee?
Fuer Nicht-Programmierer mal ein Einstieg im Fehlerlesen:
Loesung: Dort schreibst du jetzt ein "-lc" dazu, damit auch die C-Standardbibliothek eingebunden wird.
Wird die nicht standardmäßig mit eingebunden?
drachi:[hille] >more aa.c int main(){}; drachi:[hille] >gcc aa.c drachi:[hille] >ldd a.out libc.so.6 => /lib/libc.so.6 (0x40020000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) drachi:[hille] >./a.out drachi:[hille] >
Es scheint also, daß der Kandidat noch nichtmal glibc-dev (oder so) installiert hast. Nachholen und anschließend die README lesen, was er noch alles brauchst.
H.
On Montag, 27. Januar 2003 13:51, Hilmar Preusse wrote:
Es scheint also, daß der Kandidat noch nichtmal glibc-dev (oder so) installiert hast. Nachholen und anschließend die README lesen, was er noch alles brauchst.
Die ist da, allerdings nur 2.2.2-irgendwas. Ich zieh mal testweise die 2.2.5-161
Hi Falk,
On Mon, Jan 27, 2003 at 21:14:08 +0100, Falk Mölle wrote:
Die ist da, allerdings nur 2.2.2-irgendwas. Ich zieh mal testweise die 2.2.5-161
Dir ist klar, dass ein glibc-Update alles andere als trivial ist? Es ist _die_ C-Runtime-Library, von der haengt so gut wie alles ab.
bye, Chris
On Montag, 27. Januar 2003 22:08, Christian Perle wrote:
Dir ist klar, dass ein glibc-Update alles andere als trivial ist? Es ist _die_ C-Runtime-Library, von der haengt so gut wie alles ab.
Zerschiessen duerfte das aber nix, also vom Rettungssystem booten und das rpm neu einspielen sollte reichen.
Aber er bootet mit der neuen Version, hat bisher keine fehler gezeigt, und der Compilerlauf geht ueber die Stelle drüber. Naja, andermal an den weiteren Compilerfehlern Forschen
On 27.01.03 Falk Mölle (fm@moelle.st) wrote:
On Montag, 27. Januar 2003 13:51, Hilmar Preusse wrote:
Hi,
Es scheint also, daß der Kandidat noch nichtmal glibc-dev (oder so) installiert hast. Nachholen und anschließend die README lesen, was er noch alles brauchst.
Die ist da, allerdings nur 2.2.2-irgendwas. Ich zieh mal testweise die 2.2.5-161
Was liegt denn bei Dir vor? Tipp doch mal bitte "rpm -qa|grep libc" und poste das Ergebnis. Willst Du die glibc upgraden (not)? Oder willst Du das devel-Paket installieren? 2.2.5-x wird nicht zu 2.2.2 passen. Installier also bitte von CD und schau erstmal, ob meine Theorie richtig war.
H.
On Dienstag, 28. Januar 2003 00:32, Hilmar Preusse wrote:
Was liegt denn bei Dir vor? Tipp doch mal bitte "rpm -qa|grep libc" und poste das Ergebnis. Willst Du die glibc upgraden (not)? Oder willst Du das devel-Paket installieren? 2.2.5-x wird nicht zu 2.2.2 passen. Installier also bitte von CD und schau erstmal, ob meine Theorie richtig war.
Das sagt jetzt - nach dem Update: glibc-info-2.2.5-161 glibc-html-2.2.5-161 glibc-profile-2.2.5-161 glibc-2.2.5-161 glibc-i18ndata-2.2.5-161 glibc-devel-2.2.5-161 glibc-locale-2.2.5-161
Davor waren 2.2.2 und die zugehoerige devel installiert, und da gings nicht. Fehler hab ich durch das update bisher keine bemerkt, aber die alte Verdion liegt notfalls auf bootfaehiger cd vor
On Montag, 27. Januar 2003 13:51, Hilmar Preusse wrote:
Es scheint also, daß der Kandidat noch nichtmal glibc-dev (oder so) installiert hast. Nachholen und anschließend die README lesen, was er noch alles brauchst.
In dem Zusammenhang aber noch mal ne Frage: Gibts im netz irgendeine durchsuchbare datenbank, wo saemtliche "uebliche" libs mit ihren Marken drinstehen?
lug-dd@mailman.schlittermann.de