BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C lip problem » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen lip problem
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
daisuke daisuke ist männlich
T33B3UT3L


Dabei seit: 02.12.2002
Beiträge: 676
Herkunft: warmhalteplatte

lip problem       Zum Anfang der Seite springen

Ich habe ein Problem mit der lip-library. (die ist zum programmieren mit sehr großen Zahlen gedacht)

Das ist mein code (den ich im übrigen nur aus der readme kopiert hab...):

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
        #include "lip.h"
        main()
        {
                verylong a = 0;
                verylong b = 0;
                verylong c = 0;

                zread(&a);      /* read a from stdin */
                zread(&b);      /* read b from stdin */
                zmul(a, b, &c); /* multiply a and b, put result in c */
                zwriteln(c);    /* print c, followed by a newline */
        }


und das ist der debug:

cd '/home/I856/baba/debug' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k
gmake all-recursive
Entering directory /home/I856/baba/debug
Making all in src
Entering directory /home/I856/baba/debug/src
compiling fi (gcc)
/home/I856/baba/src/baba.c:40:10: warning: no newline at end of file
linking baba (libtool)
linking baba (gcc)
baba.o(.text+0x39): In function `main':
/home/I856/baba/src/baba.c:36: undefined reference to `zread'
baba.o(.text+0x48):/home/I856/baba/src/baba.c:37: undefined reference to `zread'
baba.o(.text+0x5f):/home/I856/baba/src/baba.c:38: undefined reference to `zmul'
baba.o(.text+0x6e):/home/I856/baba/src/baba.c:39: undefined reference to `zwriteln'

collect2: ld returned 1 exit status
Leaving directory /home/I856/baba/debug/src
gmake[2]: *** [baba] Error 1
gmake[2]: Target `all' not remade because of errors.
Entering directory /home/I856/baba/debug
gmake[2]: Nothing to be done for `all-am'.
Leaving directory /home/I856/baba/debug
gmake[1]: *** [all-recursive] Error 1
Leaving directory /home/I856/baba/debug
gmake: *** [all] Error 2
*** Exited with status: 2 ***

Ich arbeite mit KDevelop unter fedora core.

Kann mir jemand weiterhelfen

__________________
AMOR und PSYCHE

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von daisuke: 04.12.2005 17:33.

04.12.2005 17:30 daisuke ist offline E-Mail an daisuke senden Beiträge von daisuke suchen
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

Sieht für mich irgendwie nach einem Linker-Fehler aus.

Hast du dem Linker mitgeteilt, daß wo er die Bibliotheken findet? Wo mandas bei KDevelop machen kann, weiß ich leider nicht. Aber ich bin sicher, daß es irgendwo Linker-Optionen gibt.
04.12.2005 18:55 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
Black Star Black Star ist männlich
Der Pate [Admin]


images/avatars/avatar-2158.jpg

Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr

      Zum Anfang der Seite springen

Du wirst die Bibliothek brauchen. Hast du diese lip-Bibliothek installiert (z.B. liblip-devel oder sowas) oder hast du nur die Header-Datei in das Verzeichnis kopiert und eingebunden?

Wenn du es installiert hasts, dann kannst du die lip.h mit <lip.h> (<> statt "") einbinden.
Ausserdem wirst du die lip-libs brauchen. Das Wahrscheinlichste ist dann, dass du -llip als Linker-Option brauchst.

Dazu gehst du im Automake-Manager auf das Target, das du linken willst, gehst auf Options, dann auf Libraries dann bei dem unteren Fenster auf Add und packst -llip dazu.
Alternativ kannst du auch das passende Makefile.am editieren.

__________________
vescere bracis meis

04.12.2005 22:12 Black Star ist offline E-Mail an Black Star senden Homepage von Black Star Beiträge von Black Star suchen
daisuke daisuke ist männlich
T33B3UT3L


Dabei seit: 02.12.2002
Beiträge: 676
Herkunft: warmhalteplatte

Themenstarter Thema begonnen von daisuke
      Zum Anfang der Seite springen

Ich hab nur die header kopiert und eingebunden.
Ich bekomm die lip-Bibliothek nicht installiert....
In dem Ordner befinden sich 3 Dateien: lip.h,lippar.h und lip.c.
Ich hab also mit gcc aus der lip.c eine lip.o gemacht,danach hab ich das ganze in eine lip.a gepackt.
Diese Datei hab ich dann in /usr/lib kopiert.
wenn ich jetzt im Automakemanager "-llip" hinzufüge wird die datei nicht gefunden?!

EDIT:
ok,erst das Gehirn einschalten,dann posten.
Die Sache mit -llip funst jetzt. Das Problem besteht allerdings weiterhin (gleicher debug).

__________________
AMOR und PSYCHE

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von daisuke: 05.12.2005 19:03.

05.12.2005 18:50 daisuke ist offline E-Mail an daisuke senden Beiträge von daisuke suchen
Black Star Black Star ist männlich
Der Pate [Admin]


images/avatars/avatar-2158.jpg

Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr

      Zum Anfang der Seite springen

Die Datei muesste liblip.a heissen, damit -llip funzt. Ein ldconfig koennte auch nicht schaden.
Aber ich fuerchte, das ist zu kompliziert.
Wenn es wirklich nur die 3 Dateien sind, binde sie in dein Projekt mit ein.
In den beiden .c-Datein werden die Funktionsruempfe fuer die lip.h stehen. Also fueg sie einfach deinem Projekt hinzu und es sollte laufen.
Das -llip muss dann natuerlich wieder raus.

__________________
vescere bracis meis

05.12.2005 19:22 Black Star ist offline E-Mail an Black Star senden Homepage von Black Star Beiträge von Black Star suchen
daisuke daisuke ist männlich
T33B3UT3L


Dabei seit: 02.12.2002
Beiträge: 676
Herkunft: warmhalteplatte

Themenstarter Thema begonnen von daisuke
      Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
jk.o(.text+0xdf9c): In function `zfread':
/usr/include/lip.c:7165: undefined reference to `log'
jk.o(.text+0xdfb6):/usr/include/lip.c:7165: undefined reference to `log'
jk.o(.text+0xe2eb): In function `zfwrite_c':
/usr/include/lip.c:7244: undefined reference to `log'
jk.o(.text+0xe305):/usr/include/lip.c:7244: undefined reference to `log'
jk.o(.text+0xeea5): In function `zhsread':
/usr/include/lip.c:7690: undefined reference to `log'
jk.o(.text+0xeebf):/usr/include/lip.c:7690: more undefined references to `log' follow
collect2: ld returned 1 exit status


das spuckt er jetzt raus.

Ich hab einfach die gesammte lip.c includiert und die beiden .h´s auch.

(es kann doch nicht so schwer sein das zum laufen zu kriegen)

__________________
AMOR und PSYCHE
05.12.2005 21:05 daisuke ist offline E-Mail an daisuke senden Beiträge von daisuke suchen
Black Star Black Star ist männlich
Der Pate [Admin]


images/avatars/avatar-2158.jpg

Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr

      Zum Anfang der Seite springen

Nein.
Die c.-Dateien werden nicht per include eingebaut.
Die muessen kompiliert und mit gelinkt werden.
Wenn du sie in KDevelop zu deinem Projekt hinzufuegst, wird KDevelop sie in der Makefile.am eintragen und sie werden mit kompiliert und mit gelinkt. Dann sollte alles gehen.

__________________
vescere bracis meis

05.12.2005 21:16 Black Star ist offline E-Mail an Black Star senden Homepage von Black Star Beiträge von Black Star suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C lip problem

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH