Problem mit Makefile / C++

Dieses Thema im Forum "C/C++" wurde erstellt von Andrea, 24.05.2006.

  1. Andrea

    Andrea Routinier

    Dabei seit:
    01.12.2003
    Beiträge:
    418
    Zustimmungen:
    0
    Ort:
    Bielefeld
    Hallo,

    ich hab eine Klasse A und dafuer ein automatisch erstelltes Makefile. Rauskommen soll libA.so, das funktioniert auch soweit.
    Allerdings brauche ich jetzt auch noch eine Klasse B, ich hab den header von B in A eingebunden und bekomme auch keine Fehler beim Kompilieren. Wenn allerdings libA.so aufgerufen wird, habe ich einen Fehler "undefined symbol" wegen einer Funktion aus B.

    Wie gebe ich das richtig an, so dass die Klasse B auch wirklich beruecksichtigt wird?

    Ich habe uebrigens immer folgende Warnung beim Kompilieren:
    g++: -lcvaux: linker input file unused because linking not done
    fuer alle angegeben Bibliotheken. Hat es etwas damit zu tun?

    Danke schonmal,
    Andrea
     
  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. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Es wuerde mehr helfen, wenn Du die Fehlermeldungen per cut-and-paste hier anfuegen koenntest.

    Zur ersten Frage: Du kannst also ein executable erzeugen, dass Dir einen Laufzeitfehler ergibt? Ich vermute, dass die Bibliothek libA.so nicht gefunden wird. Dazu muesste sie entweder in /lib, /usr/lib oder einer der Verzeichnisse, die in /etc/ld.so.conf angegeben sind liegen. Oder, und das ist hier fuer eine eigene Bib wohl das Beste, Du fuegst das Verzeichnis, in dem libA.so liegt, der Variable LD_LIBRARY_PATH hinzu:
    Code:
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/pfad/zur/bib
    
    Letztlich koenntest Du das Programm auch statisch linken. Dazu muesstest Du mittels ar aus den objekt-Dateien, aus denen libA.so erstellt wird, ein Archiv kreieren:
    Code:
    ar c libA.a file1.o file2.o ...
    
    Zur zweiten Frage: vermutlich benutzt Du keine Funktion aus der Bibliothek cvaux, und da Du sie trotzdem angibst zum Linken, gibt der Compiler die Nachricht aus, dass er sie gar nicht benoetigt.
     
  4. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Moeglicher Fehler ist, wie rikola auch schon sagte, dass die Bibliothek nicht gefunden wird. Den Pfad, wo die Lib liegt, kannst du ja einfach mal dem Compiler mit -L mitgeben um sicherzustellen, dass der auch weiss, wo er suchen kann.
     
  5. Andrea

    Andrea Routinier

    Dabei seit:
    01.12.2003
    Beiträge:
    418
    Zustimmungen:
    0
    Ort:
    Bielefeld
    Hallo,

    also die libA.so gibt es, die wird auch gefunden...

    iceWing, Warning in main/plugin.c at 300: dlopen('/usr/local/lib/iceWing/libdescriptors.so') error:
    /usr/local/lib/iceWing/libdescriptors.so: undefined symbol: _ZN8keypoint14set_hgEv !

    Das ganze soll ein Plugin fuer ein Framework werden, dass die libA.so (libdescriptors.so) laedt. Fuer libdescriptors.so brauche ich die Klasse keypoint, die wird laut undefined symbol nicht gefunden... Ohne die kryptischen Zeichen heisst die Klasse keypoint, der Aufruf in der lib kp->set_hg...

    Beim Compilieren gibt es nur Warnungen, wegen unbenutzter Variablen.

    Andrea
     
  6. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Hast du evtl. im Programm nicht den richtigen Namespace angegeben?
     
  7. Brack

    Brack Mitglied

    Dabei seit:
    28.01.2005
    Beiträge:
    45
    Zustimmungen:
    0
    Wo soll denn die Klasse keypoint herkommen?

    Vielleicht hilft es ja auch, das Makefile zu posten?
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Problem mit Makefile / C++

Die Seite wird geladen...

Problem mit Makefile / C++ - Ähnliche Themen

  1. Makefile Problem für Diplomarbeit

    Makefile Problem für Diplomarbeit: Hallo, ich schreibe gerade meine Diplomarbeit und soll dort eine Schnittstelle für eine IR-Kamera zur Anbindung an eine LabView...
  2. makefile - Problem mit Abhängigkeit

    makefile - Problem mit Abhängigkeit: Hallo, also ich habe eine Frage zu Abhängigkeiten von Targets untereinander. Leider habe ich dazu nichts richtiges gefunden. Wie kann ich...
  3. Problem mit dem compilierne von Makefile.PL (ich hoffe der Thread name passt)

    Problem mit dem compilierne von Makefile.PL (ich hoffe der Thread name passt): Hi again, zunächst führe ich folgenden Befehl aus perl Makefile.PM darauf hin wird eine Standart Makefile erstllt. Wenn ich...
  4. Virtualboxproblem

    Virtualboxproblem: Hallo Folgnedes Problem: Ich kann ohne Probleme In Debian-Sid, 64Bit und virtualbox-dkms Unixoide installieren, wenn es sich um eine...
  5. grub-pc Probleme bei upgrade

    grub-pc Probleme bei upgrade: Hallo, ich habe beim dist-upgrade folgendes Problem: ---------- Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt. Trigger für...