Kompilier-Problem mit readline/ncurses

09/07/2009 - 18:08 von Hanse | Report spam
Der Fehler nervt mittlerweile extrem und finde einfach keine Lösung.
Vielleicht weiss ja hier jemand Rat.
Programmversionen sind: readline-6.0, ncurses-5.7, termcap-1.3.1,
gcc-4.4.0, cmake-2.6.4
Alles wurde aus den Sourcen kompiliert.

Wàhrend eines Kompiliervorgangs erhalte ich folgende Fehler:
Der Kompiliervorgang wird mit cmake durchgeführt.

code:

/usr/local/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../libreadline.so:
undefined reference to `tgetnum'
/usr/local/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../libreadline.so:
undefined reference to `tgoto'
/usr/local/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../libreadline.so:
undefined reference to `tgetflag'
/usr/local/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../libreadline.so:
undefined reference to `BC'
/usr/local/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../libreadline.so:
undefined reference to `tputs'
/usr/local/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../libreadline.so:
undefined reference to `PC'
/usr/local/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../libreadline.so:
undefined reference to `tgetent'
/usr/local/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../libreadline.so:
undefined reference to `UP'
/usr/local/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../libreadline.so:
undefined reference to `tgetstr'
collect2: ld returned 1 exit status
make[2]: *** [src/trinitycore/trinity-core] Error 1
make[1]: *** [src/trinitycore/CMakeFiles/trinity-core.dir/all] Error 2
make: *** [all] Error 2


Nachdem ich einiges im Internet dazu gesucht habe, wurde empfohlen
ncurses zu readline zu linken. Was ich per export LDFLAGS="-lncurses"
mit folgender Neukompilierung von readline gemacht habe. Abschliessend
dann ldconfig.

Der Fehler taucht immer noch auf.

In der MAN-Page zu curs_termcap finde ich folgendes:
SYNOPSIS
#include <curses.h>
#include <term.h>

extern char PC;
extern char * UP;
extern char * BC;

int tgetent(char *bp, const char *name)
und so weiter.

Kann mir jemand den Fehler vielleicht genauer erklàren?
Ich seh den Wald vor lauten Bàumen nicht mehr

Danke schonmal.
 

Lesen sie die antworten

#1 Realname
09/07/2009 - 18:21 | Warnen spam
Hanse schrieb:

/usr/local/lib/gcc/i686-pc-linux-gnu/4.4.0/../../../libreadline.so:
undefined reference to `tgetstr'
collect2: ld returned 1 exit status
make[2]: *** [src/trinitycore/trinity-core] Error 1
make[1]: *** [src/trinitycore/CMakeFiles/trinity-core.dir/all] Error 2
make: *** [all] Error 2


Nachdem ich einiges im Internet dazu gesucht habe, wurde empfohlen
ncurses zu readline zu linken. Was ich per export LDFLAGS="-lncurses"
mit folgender Neukompilierung von readline gemacht habe. Abschliessend
dann ldconfig.



Schnellschuss: Versuche mal lieber dieses Paket, wo die obigen
Fehlermeldungen herstammen, mit '-lncurses' zu kompilieren.

Generell musst du darauf achten, dass per 'LDFLAGS' gewàhlte Parameter
tatsàchlich auch in den Makefiles o.à. ankommen. Dazu schaut man am besten
auf die 'gcc'-Aufrufe, welche beim Kompilieren angezeigt werden. Nicht selten
zum Beispiel behauptet 'configure' zwar, 'LDFLAGS' zu berücksichtigen, tut es
in Wahrheit aber nicht. Das ist also eine weitere möglicher Fehlerquelle.

Ähnliche fragen