die Boost regex lib kann ich einfach nicht einbinden :(



  • Hi leute,

    Wiedermal ein Anfängerproblem *g* Ich habe inzwischen Anjuta gefunden zum Programmieren unter Linux und möchte nun die Boost Regex library gebrauchen.. Diese habe ich installiert und das build in "~/Cpp/ircclient/lib/boost/" verschoben.. (Vollständiger Pfad zur Regex Lib ist "~/Cpp/ircclient/lib/boost/libs/regex/build/")
    Dortdrin sind dann die libboost_regex.a und libboost_regex.so...
    Nun habe ich beim Anjuta unter den Einstellungen für Compiler und Linker bei den Linker Flags (LDFLAGS) "-l/home/mix/Cpp/ircclient/lib/boost/libs/regex/build/" eingegeben..
    Nun weiss ich nicht genau wie ich nun die libboost_regex.a einbinden kann.. Ich habs mal so probiert:

    #include "libboost_regex.so"
    

    Dieses Include ist in einer *.h datei, wird also auch includiert..
    Leider will das nicht funktionieren, der sagt mir immer Datei oder Verzeichnis nicht gefunden...

    Weiss jemand wie ich das nun richtig einbinden kann?

    Gruss
    mix



  • Eigentlich includet man den Header (*.h) und nicht die kompilierte Library...

    Also irgendetwas wie:

    #include "libboost_regex.h"
    

    Und die Lib übergibst du deinem Compiler dann als einzubindende Bibliothek.



  • EnERgYzEr schrieb:

    Eigentlich includet man den Header (*.h) und nicht die kompilierte Library...

    Also irgendetwas wie:

    #include "libboost_regex.h"
    

    Und die Lib übergibst du deinem Compiler dann als einzubindende Bibliothek.

    ähm ja, dacht ich auch..da wird irgendwo immer ne regex.hpp erwähnt..nur ist die nirgends... oO es hat nochne libboost_regex.a .. aber die is auch kompiliert..



  • such das verzeichnis mit

    find ~/Cpp/ircclient -name "regex.hpp"

    btw sollte man dann die lib dazu link mit "-lboost_regex -L/home/mix/Cpp/ircclient/lib/boost/libs/regex/build"



  • Ok habs gefunden.. Nun wenn ich "-lboost -L/home/mix/Cpp/boost_1_32_0/boost/" (dort drin is regex.hpp) mache und dann

    #include <boost/regex.hpp>
    

    mache, findet ers trotzdem nicht.. Und wenn ich einfach mit

    #include "/home/mix/Cpp/boost_1_32_0/boost/regex.hpp"
    

    mache, dann kommt

    /home/mix/Cpp/boost_1_32_0/boost/regex.hpp:28:34: boost/regex/config.hpp: Datei oder Verzeichnis nicht gefunden
    /home/mix/Cpp/boost_1_32_0/boost/regex.hpp:34:36: boost/regex/v4/regex.hpp: Datei oder Verzeichnis nicht gefunden
    

    weiss jemand was ich falsch mache? *grml* Es ist eh nurn doofer Fehler*g*



  • #include <regex.hpp>

    Anscheinend ist das File ja im Root-Verzeichnis deines Include Pfades 😉



  • Der findet das immer noch nicht 😞

    Edit:

    Ich habe jetzt die Bost library nochmal neukompiliert. Die Verzeichnisse sind jetzt folgende:
    ~/Cpp/ircclient/irc.cpp <-- main file
    ~/Cpp/ircclient/lib/irc.h <-- irc klasse
    ~/Cpp/ircclient/lib/boost_1_32_0/ <-- boost library

    mix@debian:~/Cpp/ircclient/lib/boost_1_32_0$ find -name "regex.hpp"
    ./boost/algorithm/string/regex.hpp
    ./boost/regex/v3/regex.hpp
    ./boost/regex/v4/regex.hpp
    ./boost/regex.hpp
    ./boost/spirit/utility/regex.hpp

    Nun habe ich in Anjuta unter LDFLAGS "-lboost -L/home/mix/Cpp/ircclient/lib/boost_1_32_0/boost/"

    Und danach mit

    #include <regex.hpp>
    

    die Datei includen wollen. Die Datei findets aber immer noch nicht.

    Ich hoffe so kann mir jemand besser helfen..



  • Also ich kenn mich mit Anjuta nicht aus, aber du setzt die ganze Zeit IMHO nur
    den Bibliothekspfad. Du musst aber auch den Include-Pfad setzen. Verwendest
    du eine grafische Entwicklungsumgebung? Wenn ja, kannst du den Pfad sicherlich
    unter den Projekteigenschaften hinzufügen.

    Oder unter der Konsole:

    -L ist sicherlich für die Bibliothek, aber du übergibst den Include-Pfad. Guck
    mal in der Doku, wie man den/die Include-Pfade setzt.



  • Ja Anjuta ist eine grafische Entwicklungsumgebung.
    Dank dir hab ichs jetzt geschafft, thx.
    Ich musste, wie du gesagt hast, einen Include Pfad auf "/home/mix/Cpp/ircclient/lib/boost_1_32_0/" setzen und dann mit

    #include <boost/regex.hpp>
    

    includen.

    Juhui, Problem gelöst *g* thx


Anmelden zum Antworten