Re: Problem beim Bauen von picobsd

From: Harold Gutch <logix(at)foobar.franken.de>
Date: Wed, 28 Apr 2004 17:59:52 +0200

On Wed, Apr 28, 2004 at 11:41:17AM +0200, Marcus Franke wrote:
> Moin,
>
> ich laufe hier gerade in Probleme beim build von
> picobsd. Und ich verstehe leider gar nicht, was
> der Compiler von mir will :(
>
> Output:
> /usr/lib/libedit.a(editline.o): In function `el_gets':
> editline.o(.text+0x67d6): undefined reference to `tgoto'
> editline.o(.text+0x6991): undefined reference to `tgoto'
> editline.o(.text+0x6ab2): undefined reference to `tgoto'
> editline.o(.text+0x6bb7): undefined reference to `tgoto'
> editline.o(.text+0x6eb9): undefined reference to `tgetent'
> editline.o(.text+0x6f7d): undefined reference to `tgetflag'
> editline.o(.text+0x6f94): undefined reference to `tgetflag'
> editline.o(.text+0x6faf): undefined reference to `tgetflag'
> editline.o(.text+0x6fc7): undefined reference to `tgetflag'
> editline.o(.text+0x6fe2): undefined reference to `tgetnum'
> editline.o(.text+0x6ffa): undefined reference to `tgetnum'
> editline.o(.text+0x702a): undefined reference to `tgetstr'
> editline.o(.text+0x7bdc): undefined reference to `tgetstr'
> editline.o(.text+0x7d7b): undefined reference to `tgoto'
> editline.o(.text+0x7e7a): undefined reference to `tgoto'
> *** Error code 1
>
> Stop in /usr/src/release/picobsd/build/build_dir-net/crunch.
> ---> fail: Error <1> error code <crunch> in <>
> Error while building net.
> ---> Aborting ./picobsd
>
>
> Was will das Teil von mir?? Bzw. wie behebe ich diesen Fehler?

In der Objektdatei "editline.o", die ein Teil von libreadline
ist, gibt es in der Funktion "el_gets" Aufrufe von Funktionen
namens "tgoto", "tgetent", "tgetflag", "tgetnum", und "tgetstr",
die allerdings alle nicht in libreadline (bzw. in anderen beim
Linken von libreadline auf der Kommandozeile mit "-lxzy"
angegebenen Bibliotheken) existieren.

Meine (FreeBSD-)libreadline ist auch gegen libncurses gelinkt:

  $ ldd /usr/lib/libedit.so.3
  /usr/lib/libedit.so.3:
          libncurses.so.5 => /usr/lib/libncurses.so.5 (0x28117000)

und dort existieren diese Symbole auch:

  $ nm /usr/lib/libncurses.a | grep -E 'tgoto|tgetent|tgetflag|tgetnum|tgetstr'
  lib_tgoto.o:
  00000304 T tgoto
  00000000 T tgetent
  00000384 T tgetflag
  00000400 T tgetnum
  00000490 T tgetstr

Die Loesung ist also ein "-lncurses" im Linker-Aufruf. Entweder
du patchst dazu das entsprechende Makefile von PicoBSD oder du
kopierst den letzten (fehlgeschlagenen) Befehl, der zu obigem
Fehler fuehrt, und fuegst an die Kommandozeile ein "-lncurses"
an.

bye,
  Harold

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 28 Apr 2004 - 18:01:29 CEST

search this site