Как заставить PCRE работать с C++?

это вопрос новичка, но я надеюсь, что смогу выразить свой вопрос как можно яснее.

Я пытаюсь сделать сопоставление шаблонов в C++.

Я загрузил версию Win32 PCRE из здесь и я разместил загруженный pcre3.dll и pcreposix3.dll-файлы в папку lib-папки Dev-CPP (я использую Bloodshed Dev-C++ 4.9.9 IDE).

Я также загрузил pcrecpp.H заголовочный файл и иметь его в том же каталоге, что и я написание следующего кода (на самом деле не написание. Я справляюсь с примером кода из PDF-учебника под названием PCRE-Perl Compatible Regular Express).

но я не могу заставить его работать. Код выглядит следующим образом:

    #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";
    }

когда я компилирую код, Dev-C++ дает мне много ошибок, включая: "`pcrecpp' не был объявлен" и "RE" необъявленный.

Как мне справиться с загруженными файлами и исправить мою проблему? Или есть что-то очевидное, что я упускаю?

4 ответов


если указать файл для #include в угловые скобки (<>), то компилятор будет искать только этот заголовок в местоположениях для внешних библиотек, насколько компилятор знает о них.
Если вместо этого вы используете кавычки (""), то компилятор также будет искать в местоположениях для текущего проекта, который обычно включает текущий каталог.

быстрое решение для вашей текущей проблемы является использовать

#include "pcrecpp.h"

альтернативой является сообщить компилятору, где он может найти заголовки библиотеки PCRE.
Вам нужно будет сообщить компилятору, где он может найти заголовки библиотеки PCRE. Как это сделать отличается от сборки системы для сборки системы, но если вы используете IDE, то должна быть опция где-то указать "включить каталоги". Здесь вы добавляете каталог заголовков PCRE (с полным путем).


как Примечание: когда компилятор дает Вам большое количество ошибок и предупреждений, всегда начинайте с исправления первого. Я бы предположил, что в этом случае это было что-то вроде "невозможно найти заголовок: pcrecpp.ч."
Часто бывает так, что, если компилятор пытается продолжить работу после возникновения проблемы, обнаруживается больше проблем, которые являются последующими проблемами первого. Когда первая проблема устранена, они также волшебным образом исчезают.


g++ - lpcrecpp ......

вам нужно добавить '- lpcrecpp' в команду g++


         cout << “PCRE compilation failed with error: “ << re.error() << “\n”;

Я просто скопировал ваш код и попробовал скомпилировать его. Я получил ту же ошибку,что и вы. Проблема в том, что строка, которую вы помещаете в cout, неправильно запущена / закончена. Вы должны использовать real "вместо меток, которые выглядят как двойные кавычки (" ), но это не так. Если вы исправить это, ваш код должен компилироваться без ошибок.


включены

#include <pcrecpp.h> 

1-я точка для проверки, но является файлом в пути inlcude вашего кода. Вы загрузили установочный ? Проверьте, где он был установлен на вашем компьютере.

2-й пункт-Проверить, определены ли пути к библиотеке, чтобы их можно было разрешить во время компиляции и связывания.