Wie bekomme ich die PCRE-arbeiten mit C++?
Dies ist eine newbie-Frage aber ich hoffe ich kann Ausdrücken, meine Frage so deutlich wie möglich.
Ich versuche zu tun, pattern-matching in C++.
Ich heruntergeladen habe die Win32-version von PCRE aus hier und ich habe das heruntergeladen pcre3.dll und pcreposix3.dll Dateien in den Ordner von Dev-CPP lib " - Ordner (ich benutze Bloodshed Dev-C++ 4.9.9 IDE).
Habe ich auch heruntergeladen pcrecpp.h header-Datei und Sie im gleichen Verzeichnis wie Schreibe ich den folgenden code (der nicht schreiben eigentlich. Ich bin Bewältigung der Beispiel-code aus einem PDF-tutorial namens PCRE - Perl Compatible Regular Express).
Aber ich kann nicht ankommen es zu wirken. Der code ist wie folgt:
#include <iostream>
#include <string>
#include <pcrecpp.h>
using namespace std;
int main()
{
int i;
string s;
pcrecpp::RE re("(\\w+):(\\d+)");
if (re.error().length() > 0) {
cout << "PCRE compilation failed with error: " << re.error() << "\n";
}
if (re.PartialMatch("root:1234", &s, &i))
cout << s << " : " << i << "\n";
}
Wenn ich den code kompilieren, wird Dev-C++ gibt mir viele Fehler, darunter: "`pcrecpp' wurde nicht deklariert" und "NEU" deklarierten.
Wie soll ich mit den heruntergeladenen Dateien und behebt mein problem? Oder ist es etwas offensichtlich, dass ich bin fehlt?
- Auf einem nicht verwandten note, ich würde Ihnen raten, um einen aktualisierten IDE (und wahrscheinlich auch eine neuere version von MinGW, wenn Sie mit der eine mit ihm gebündelt); Dev-C++ Entwicklung gestoppt paar Jahren, und AFAIK gibt es einige bekannte Fehler. In Erwägung ziehen, um Code::Blocks/CodeLite/MSVC++ Express/..., Sie alle sind gute, freie IDEs und Schiff mit aktuellen Compilern.
- Italia, vielen Dank für die recommdendations. Ich werde mal einen Blick auf Sie.
- Dieser ist ein wrapper des neuen PCRE2 (überarbeitete version von PCRE) Bibliothek. Es erfordert C++11 aber.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie die Datei anzugeben, die für
#include
mit Spitzen Klammern (<>
), dann wird der compiler nur einen Blick für diesen header in den Standorten für externe Bibliotheken, soweit Sie dem compiler bekannt sind.Wenn Sie stattdessen verwenden Sie Anführungszeichen (
""
), dann wird der compiler wird sich auch in den locations für das aktuelle Projekt, die in der Regel enthält das aktuelle Verzeichnis.Die schnelle Lösung für Ihr Aktuelles problem ist die VerwendungDie alternative ist, zu sagen dem compiler, wo Sie es finden können die Header der PCRE-Bibliothek.Sie sagen dem compiler, wo Sie es finden können die Header der PCRE-Bibliothek.
Wie Sie dies tun, unterscheidet sich von build-system auf build-system, aber wenn Sie eine IDE, dann sollte es eine option irgendwo angeben, dass die 'Include directories'. Dies ist, wo Sie das Verzeichnis einfügen, in der PCRE-Header (mit vollständigen Pfad).
Als Randbemerkung: Wenn der compiler gibt Ihnen eine große Anzahl von Fehlern und Warnungen, immer beginnen Sie mit der Befestigung der erste. Ich würde vermuten, dass in diesem Fall es war irgendwas mit "unable to find header: pcrecpp.h".
Es ist oft der Fall, dass, wenn der compiler versucht, weiterhin nach der Begegnung ein problem, mehr Probleme gefunden werden, die Folgen-auf die Probleme des ersten. Wenn das erste problem behoben ist, sind diese auch magisch verschwinden.
#include <>
syntax als auch auf pull in mehr überschriften. Ich passte meine Antwort. Was müssen Sie tun, sagen Sie dem compiler, wo finden Sie die entsprechenden Header.müssen Sie hinzufügen '-lpcrecpp' g++ - Befehl
Ich habe gerade kopiert den code und versucht zu kompilieren. Ich habe den gleichen Fehler, wie Sie berichtet.
Das problem ist, dass die Zeichenfolge, die Sie setzen, um cout ist nicht korrekt gestartet/beendet. Sie sollten mit real "anstelle von Marken, die sieht aus wie Anführungszeichen (" ), aber es ist nicht. Wenn Sie es zu beheben, muss der code kompiliert w/o irgendwelche Fehler.
Die Sie eingeschlossen haben,
1. Punkt zu überprüfen, Aber ist die Datei in den include-Pfad Ihres Codes. Haben Sie download der installierbaren ? Prüfen Sie, wo es installiert wurde auf Ihrem Computer.
2. Punkt ist zu überprüfen, haben Sie die library-Pfade definiert, so dass Sie gelöst werden können, die beim kompilieren und linken.