Noch ein 'undefined reference to'-Problem

Dieses Thema im Forum "C/C++" wurde erstellt von abstrux, 27.12.2009.

  1. #1 abstrux, 27.12.2009
    abstrux

    abstrux Grünschnabel

    Dabei seit:
    25.12.2009
    Beiträge:
    3
    Zustimmungen:
    0
    Servus alle

    Seit langem versuche ich, dsniff 2.3 auf meinem Suse 10.1 (gcc 4.1.0) Rechner zu compilieren+installieren. Nach einigen Hürden habe ich es geschafft, alle benötigten Packages zu compilieren und (fehlerfrei?!) zu installieren (Berkeley DB 1.85 ja ich weiss, hätte auch die aktuelle Version einfach 1.85-kompatibel compilieren können, Libnet 1.0.2a, Libnids 1.16 und Openssl).

    shark:~/net-dsniff/dsniff-2.3 # ./configure (geht fehlerfrei)
    shark:~/net-dsniff/dsniff-2.3 # make

    Beim _linken_ von dsniff 2.3 bekomme ich folgenden Fehler:

    gcc -o dsniff asn1.o base64.o buf.o hex.o magic.o mount.o pcaputil.o rpc.o tcp_raw.o trigger.o record.o dsniff.o decode.o decode_aim.o decode_citrix.o decode_cvs.o decode_ftp.o decode_hex.o decode_http.o decode_icq.o decode_imap.o decode_irc.o decode_ldap.o decode_mmxp.o decode_mountd.o decode_napster.o decode_nntp.o decode_oracle.o decode_ospf.o decode_pcanywhere.o decode_pop.o decode_portmap.o decode_postgresql.o decode_pptp.o decode_rip.o decode_rlogin.o decode_smb.o decode_smtp.o decode_sniffer.o decode_snmp.o decode_socks.o decode_tds.o decode_telnet.o decode_vrrp.o decode_yp.o decode_x11.o -lresolv -lnsl -lrpcsvc -L. -lmissing -L/usr/local/lib -lnids -lpcap -lnet -L/usr/local/ssl/lib -lssl -lcrypto
    record.o: In function `record_init':
    ./record.c:167: undefined reference to `dbopen'
    collect2: ld returned 1 exit status
    make: *** [dsniff] Error 1

    Habe dann auch das Makefile angepasst:

    NIDSLIB = -L/usr/local/lib -lnids

    DBINC =
    DBLIB =

    SSLINC = -I/usr/local/ssl/include

    zu

    NIDSLIB = -L/usr/local/lib -lnids

    DBINC =
    DBLIB = -ldb #mit DBLIB = -L/usr/lib -ldb auch schon probiert...

    SSLINC = -I/usr/local/ssl/include

    aber es kommt immer derselbe Fehler. Nach

    shark:~/net-dsniff/dsniff-2.3 # nm /usr/lib/*/* > search_4_dbopen

    finde ich in search_4_dbopen

    ...
    /usr/lib/htdig_db/libhtdb.a:
    ...
    db.o:
    ...
    000000a0 t CDB___db_dbopen
    ...

    und habe dann als gcc-Optionen im Makefile DBLIB = -L/usr/lib/htdig_db -lhtdb angepasst. Ergebnis: genau die gleiche Fehlermeldung (gcc-Aufruf von make wird nat. schon angepasst).

    Leute, kann mir jemand helfen? Ich bin mit meinem Latein echt am Ende, will aber nicht aufgeben :-)

    Danke erstmal...und Grüsse von Sam!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 bitmuncher, 27.12.2009
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Sind die notwendigen Header in der record.c inkludiert?
     
  4. #3 abstrux, 30.12.2009
    abstrux

    abstrux Grünschnabel

    Dabei seit:
    25.12.2009
    Beiträge:
    3
    Zustimmungen:
    0
    Ja. Die Funktion ... dbopen(...) ist in db.c definiert. db.h ist in record.c inkludiert, ebenfalls die Headerfiles gemäss 'man dbopen'.
    Aber: In db.h steht kein Prototyp von dbopen aber folgende (Makro-?)Zeile:

    __BEGIN_DECLS
    DB *dbopen __P((const char *, int, int, DBTYPE, const void *));

    ...any suggestions?
     
  5. #4 Blender3D, 30.12.2009
    Blender3D

    Blender3D Vitamin C++

    Dabei seit:
    17.09.2007
    Beiträge:
    228
    Zustimmungen:
    0
    Ort:
    /root
    so, wie ich das verstehe, ist die genannte Zeile aus db.h eine Definnition einer Funktion (__P(const char* in, in, DBTYPE, const void*))
    folglich id dbopen ein Datentyp/Structure.

    ein Lösungsansastz, den ich über google gefunden habe:
    BTW: An automatisch generierten Makefiles rumzuschrauben ist nicht immer eine gute Idee ;)

    Grüße, Blender3D
     
  6. #5 abstrux, 31.12.2009
    abstrux

    abstrux Grünschnabel

    Dabei seit:
    25.12.2009
    Beiträge:
    3
    Zustimmungen:
    0
    Hm, dbopen ist schon eine Funktion, definiert in db.c

    Aber ich habe das Problem anders gelöst: Berkeley DB in der aktuellen Version installiert, einfach im 1.85-kompatiblen Modus (wie von dir Blender3D vorgeschlagen) kompiliert und dsniff noch ein paar weitere Pfadangaben gegeben. Musste in einer dsniff-c-Datei wohl wegen einem anderen Problem noch eine zusätzliche Headerdatei einbinden, aber jetzt läuft das Ding wie geschmiert :-)

    Danke euch allen! und einen guten Rutsch natürlich...
    Sam
     
Thema:

Noch ein 'undefined reference to'-Problem

Die Seite wird geladen...

Noch ein 'undefined reference to'-Problem - Ähnliche Themen

  1. Firefox 44 bietet nochmals versteckte Option zum Laden nicht signierter Erweiterungen

    Firefox 44 bietet nochmals versteckte Option zum Laden nicht signierter Erweiterungen: Mozillas jetzt veröffentlichter Browser Firefox 44 verhindert das Laden von nicht signierten Erweiterungen. Entgegen dem ursprünglichen Plan gibt...
  2. Artikel: 24 Jahre jung: Das Beste von Linux kommt noch

    Artikel: 24 Jahre jung: Das Beste von Linux kommt noch: Linux ist nun 24 Jahre alt. Was wir bisher von Linux gesehen haben, ist aber gewissermaßen erst der Anfang. Linux steht noch eine große Zukunft...
  3. Frankreichs Verwaltungen sollen noch aktiver freie Software fördern

    Frankreichs Verwaltungen sollen noch aktiver freie Software fördern: DISIC, die französische interministerielle IT-Direktion, ermuntert die öffentlichen Verwaltungen des Landes, mehr Engagement bei freier Software...
  4. Die meisten Repositorien auf GitHub haben immer noch keine Lizenz

    Die meisten Repositorien auf GitHub haben immer noch keine Lizenz: Die Zahl der Repositorien auf GitHub, die eine klare Lizenz haben, bewegt sich seit Jahren um die 20 Prozent und teilweise deutlich darunter. Der...
  5. Die meisten Repositories auf GitHub haben immer noch keine Lizenz

    Die meisten Repositories auf GitHub haben immer noch keine Lizenz: Die Zahl der Repositories auf GitHub, die eine klare Lizenz haben, bewegt sich seit Jahren um die 20 Prozent und teilweise deutlich darunter. Der...