bestimmte externe Library einbinden



  • Hallo,

    ich hab eine weile gesucht, aber nix gefunden. Ich habe eine Bib gedownloadet (https://github.com/frankaemika/libfranka), kann dort auch die examples erfolgreich ausführen, nun möchte ich ein eigenes Programm mit der Bib schreiben und weiß nicht, wie ich diese includiere.

    Ich hab z.B. mal Eclipse versucht: Projekt - Properties - C/C++ Build - Settings - G++ Linker _Libraries und dort bei Library Path den Pfad angegeben. Wird nix gefunden...

    Hab mir auch gedacht einfach mit einem normalen Texteditor zu schreiben und über die Konsole zu kompilieren, nur klappt das auch nicht so richtig, bzw weiß ich nicht genau die Syntax.

    Kann mir da einer weiterhelfen?

    Ich arbeite mit Ubuntu



  • Includepfade werden mit -I angegeben:

    g++ -I /mein/pfad ...
    

    Bibliothekpafade werden mit -L, Bibliotheken mit -l angegeben

    g++ -L /mein/pfad -lmeinelib ...
    

    "Wird nix gefunden" und "klappt das auch nicht so richtig" sind keine Fehlerbeschreibungen.

    Was hast du gemacht?
    Wie lautet die Fehlermeldung (Copy&Paste!)



  • ja sorry für die "schlechten Angaben"

    ähm...
    mein vorgehen: habe die Lib gedownloadet und gebaut

    mkdir build
    cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    cmake --build .
    

    dann habe ich mir eclipse CDT installiert und wie im Post zuvor versucht zu inkludieren. Mir ist aufgefallen, das ich keine .lib / .dll finde im Library Verzeichnis.

    Wenn ich zb. in der Konsole

    g++ hello.cpp -L /home/system/libfranka/ -lfranka -o test
    

    eingebe sagt der mit halt

    g++ hello.cpp -L /home/system/libfranka/ -llibfranka -o teste
    hello.cpp:2:26: fatal error: franka/robot.h: Datei oder Verzeichnis nicht gefunden

    (habe einfach in der hello.cpp mal eine header <franka/robot.h> inkludiert.



  • Da fehlt das -I mit dem Pfad zu franka/robot.h



  • Sorry für die späte Rückmeldung, war verhindert und vielen Dank für die Mühe mir zu antworten
    In folgendem Link ist der SourceCode der Lib ( https://github.com/frankaemika/libfranka) - So inkl. eines Buildverzeichnisses habe ich die auf dem Rechner.

    Im Buildverzeichnis sind nach dem bauen mit cmake folgende Objekte: Ordner(CMakeFiles, common, examples, googletest, test) und folgende Files: diverse <name>.cmake Dateien und libfranka.so, libfranka.so.03, libfranka.so.0.3.0

    Ich möchte alle Header einbinden - oder muss ich mit -I jede header immer wieder einbinden? Weil ich hab mal gelesen das man auf eine .dll datei verweisen soll, aber sowas finde ich dort nicht.



  • Da fehlt noch der Include-Pfad ( -I Option). Der Include-Pfad sollte /home/system/libfranka/include/ sein.

    Bsp:

    g++ hello.cpp -I /home/system/libfranka/include/ -L /home/system/libfranka/ -lfranka -o test


Anmelden zum Antworten