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 librarymix@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.hppNun 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