Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » reguläre Ausdrücke /c++ /gcc 3.3.4

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.05.2005, 13:43 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


vergessen den boost-header zu inkludieren?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.05.2005, 14:29 Uhr
~tina
Gast


Habe ich gemacht.
Ich habe wirklich keine Ahnung, an welchem Knöpfchen ich noch drehen könnte. ;-(((
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.05.2005, 15:44 Uhr
~Tina
Gast


Hallo,

ich habe auch schon versucht, die Bibliotheken einzubinden. Das heißt, ich habe den Include-Pfad bei Anjuta auf den Boost-Installationspfad gesetzt und bei Bibliothek die Datei libboost_regex-gcc-1_32.a versucht einzubinden. Dies setzt wohl den Parameter -I?
Auf alle Fälle findet der Compiler die Bibliotheken dann trotzdem nicht. Ich habe diesen Pfad in der in der Doku verwendeten Form: <boost>/libs/regex/build/gcc/libboost_regex-gcc-1_32.a
eingetragen.
Dann erhalte ich jedoch folgende Fehlermeldung:
/usr/lib/gcc-lib/i586-suse-linux/3.3.4/../../../../i586-suse-linux/bin/ld: cannot find -l<boost>/libs/regex/build/gcc/libboost_regex-gcc-1_32.a
Ich habe den Include als auch den Bibliothekspfad auf alle erdenklichen Arten verändert, aber die Bibliothek bleibt nicht auffindbar... ;-( Was mache ich falsch?

Vielen Dank noch mal,
Tina
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.05.2005, 16:24 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat von ~Tina:
Hallo,

ich habe auch schon versucht, die Bibliotheken einzubinden. Das heißt, ich habe den Include-Pfad bei Anjuta auf den Boost-Installationspfad gesetzt und bei Bibliothek die Datei libboost_regex-gcc-1_32.a versucht einzubinden. Dies setzt wohl den Parameter -I?



Nein. Lies mal die Doku:
-l (also kleines L)
und
-L (also großes L)
sind hier wichtig:

Du soilltest diese Optionen verwenden:

-L<boost>/libs/regex/build/gcc -lboost_regex-gcc-1_32
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 13.05.2005 um 16:24 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: