Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Регулярные выражения. Установка PCRE, не получается собрать проект 
:(
    Опции темы
Dakotta
Дата 20.9.2010, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 20.9.2010

Репутация: нет
Всего: нет



Здравствуйте! Помогите, пожалуйста, собрать проект C++ с использованием регулярных выражений.
Вот нашла пример, установила библиотеку <pcre.h>
Код

#include <iostream>
#include <pcre.h>
#include <stdlib.h>
#include <string.h>
#include <vector>
using namespace std;
int main(){
 
   char pattern[] = "[es]"; // шаблон (регулярное выражение)
   char str[] = "test";  // разбираемая строка
 
   // создание таблицы перекодировки для локали ru
   const unsigned char *tables = NULL;         
   setlocale (LC_CTYPE, (const char *) "ru.");
   tables = pcre_maketables();
 
   // компилирование регулярного выражения во внутреннее представление
   pcre *re;
   int options = 0;
   const char *error;
   int erroffset;
   re = pcre_compile((char *) pattern, options, &error, &erroffset, NULL);
 
   if (!re){ // в случае ошибки компиляции
      cout << "Failed\n";
   }
   else{
      int count = 0;
      int ovector[30];
 
      count = pcre_exec(re, NULL, (char *) str, strlen(str), 0, 0, ovector, 30);
      // выполнение сопоставления с образцом
      if (!count){ // если нет совпадений
         cout << "No match\n";
      }
      else{
         //вывод пар {начало, конец} совпадения
         for (int c = 0; c < 2 * count; c += 2){
            if (ovector[c] < 0){ // или <unset> для несопоставившихся подвыражений
               cout << "<unset>\n";
            }
            else{
               cout << ovector[c] << "/" << ovector[c + 1] << "\n";
            }
         }
      }
   }
 
   return 0;
}

Программа компилируется, но при запуске возникают ошибки:
Код

Building in directory: /home/dakotta/vkr/Debug/Debug/src
make vkr
Invoking libtool for linking
libtool: link: g++ -g -O0 -o vkr main.o 
main.o: In function `main':
main.cc:34: undefined reference to `pcre_maketables'
main.cc:41: undefined reference to `pcre_compile'
main.cc:50: undefined reference to `pcre_exec'

collect2: ld returned 1 exit status
make: *** [vkr] Error 1
Завершено неуспешно
Всего заняло времени: 1 секунд


Подскажите, пожалуйста, как это можно решить? Может быть какие-то библиотеки доставлять или еще что-нибудь? Только если есть чем помочь, будьте так добры, объясните как можно доходчивее, я только учусь smile
Заранее спасибо!
PM MAIL   Вверх
djamshud
Дата 20.9.2010, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 1
Всего: 39



Нужно слинковаться с этой библиотекой. Сделать это можно в натсройках проекта вашей IDE. Или используется просто какая-то система сборки?

Но вообще, если зрит в корень, то

Код

g++ -L/path/to/pcre -Wl,-rpath,/path/to/pcre -lpcre ....



--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Dakotta
Дата 20.9.2010, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 20.9.2010

Репутация: нет
Всего: нет



djamshud, я пользуюсь средой Anjuta. Порылась там в настройках, ничего подобного не обнаружила.
прогуглила пол дня, тоже ничего не нашла, может быть не там искала, конечно.
Может быть кто-нибудь сталкивался и знает как решить эту проблему? Расскажите, как подключить эту библиотеку!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.1134 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.