000
13.05.2005, 13:10 Uhr
~Tina_absolute_beginners
Gast
|
Hallo,
ich habe folgendes Problem und komme gerade keinen Schritt weiter. Dazu muß ich vielleicht sagen, dass ich absoluter Anfänger bin. Ich möchte reguläre Ausdrücke unter c++ verwenden und benutze als Entwicklungsumgebung Anjuta unter Suse Linux 9.2, das den Compiler gcc Version 3.3.4 verwendet. Zunächst habe ich versucht, die Boost- Bibliotheken 1_32_0 zu installieren. Die Installation klappte auch meiner Meinung nach, aber irgendwas habe ich wohl vergssen einzurichten. Ich habe in der Entwicklungsumgebung wie gefordert den Include-Pfad auf den Installationspfad von Boost gesetzt. Wenn ich jedoch versuche, die Bibliothek anzugeben (dieses *.a Archiv), bekomme ich eine Fehlermeldung, dass er es nicht findet. Lasse ich dies weg, dann wird das Programm zwar erfolgreich compiliert, aber beim Generieren bekomme ich folgende Fehllermeldung:
g++ -I/home/c++/regular_expressions/boost_1_32_0/boost_1_32_0 -I/home/Kerstin/c++/regexpp3 "felsenstein_pruning_prog_boost.cc" -o "felsenstein_pruning_prog_boost" /tmp/cc1dyGng.o(.gnu.linkonce.t._ZN5boost11basic_regexIcNS_12regex_traitsIcEESaIcEEC1EPKcjRKS3_+0x13): In function `boost::basic_regex<char, boost::regex_traits<char>, std::allocator<char> >::basic_regex[in-charge](char const*, unsigned, std::allocator<char> const&': : undefined reference to `boost::reg_expression<char, boost::regex_traits<char>, std::allocator<char> >::reg_expression[not-in-charge](char const*, unsigned, std::allocator<char> const&' /tmp/cc1dyGng.o(.gnu.linkonce.t._ZN5boost11basic_regexIcNS_12regex_traitsIcEESaIcEED1Ev+0xd): In function `boost::basic_regex<char, boost::regex_traits<char>, std::allocator<char> >::~basic_regex [in-charge]()': : undefined reference to `boost::reg_expression<char, boost::regex_traits<char>, std::allocator<char> >::~reg_expression [not-in-charge]()' collect2: ld returned 1 exit status
Hat jemand eine Idee, woran dies liegt und was man machen kann?
Als nächstes habe ich dann versucht, die Bibliotheken regex-0.12 einzubinden. Diese sind mir allerdings erst recht suspekt. Man muß dabei wohl Pattern compilieren mit dem Befehl char *re_compile_pattern(const char* Regex, const int regex_size, struct re_pattern_buffer *pattern_buffer); Regex ist dabei das zu compilierende Pattern (warum char? weil es alter c-code ist? Aber ein Muster ist doch länger als nur ein zeichen, wie binde ich hier einen String ein? Ich habe alle diese Felder sowie ihre Adressen angelegt und dann beim Compilieren und Generieren auch keine Fehlermeldung bekommen. Beim Ausführen bekomme ich jedoch die Meldung: Signal 11 (Segmentation fault) Damit kan ich leider auch nichts anfangen. ;-(
Sorry für die vielen Fragen. Ich kenne jedoch niemanden, der sich damit auskennt und versuche jetzt seit über einer Woche reguläre Ausdrücke zu benutzen und sehe momentan einfach kein Land mehr. Ich würde mich riesig freuen, wenn mir jemand helfen könnte.
Danke schon mal, Tina |