2011-04-06 3 views
1

PCRE 라이브러리가 올바르게 설치되었는지 테스트하기 위해 코드를 컴파일하는 데 문제가 있습니다. 오류가 반환컴파일 오류 C++ - PCRE 라이브러리를 사용하는 정의되지 않은 참조

#include <string> 
#include <iostream> 
#include <pcre.h> 



int main (int argc, char *argv[]) 

{ 
    const char *error; 
    int erroffset; 
    pcre *re; 
    int rc; 
    int i; 
    int ovector[100]; 

    char *regex = "From:([^@]+)@([^\r]+)"; 
    char str[] = "From:[email protected]\r\n"\ 
        "From:[email protected]\r\n"\ 
        "From:[email protected]\r\n"; 

    re = pcre_compile (regex,   /* the pattern */ 
         PCRE_MULTILINE, 
         &error,   /* for error message */ 
         &erroffset,  /* for error offset */ 
         0);    /* use default character tables */ 
    if (!re) 
    { 
     printf("pcre_compile failed (offset: %d), %s\n", erroffset, error); 
     return -1; 
    } 

    unsigned int offset = 0; 
    unsigned int len = strlen(str); 
    while (offset < len && (rc = pcre_exec(re, 0, str, len, offset, 0, ovector, sizeof(ovector))) >= 0) 
    { 
     for(int i = 0; i < rc; ++i) 
     { 
      printf("%2d: %.*s\n", i, ovector[2*i+1] - ovector[2*i], str + ovector[2*i]); 
     } 
     offset = ovector[1]; 
    } 
    return 1; 
} 

은 다음과 같습니다

[Linker error] undefined reference to `_imp__pcre_compile' 

[Linker error] undefined reference to `_imp__pcre_exec' 

내가 멍청한 짓을하고 있어요 확신합니다.

현재 IDE Dev-C++를 사용하여 Dev 패키지 관리자를 사용하여 패키지를 설치했습니다.

이것은 DevPak 패키지 설치된다http://www.mediafire.com/?zb3wc6q07sddsac 내가 라이브러리를 설치하는 데 사용 (PCRE-6.4.1)

내가 corretly이 라이브러리를 설치하기 나를 이어질 것이 몇 가지 지침을 원하는 (그래서 작업 할 수 있습니다 정규식).

그렇지 않으면이 Dev-C++ 또는 CodeBlocks에 설치하기 쉬운 정규 표현식을 지원하는 C++ 라이브러리에 대한 참조를 좋아합니다.

도움 주셔서 감사합니다.

편집 : 당신의 도움에 대한 덕분에,이 스레드를 모두 스레드에서 How do I get PCRE to work with C++?

벙어리 코더 응답을 확인하여이 문제를 해결했다.

+1

를 호출하는거야? – Mark

+1

경로 및 lib 종속성을 설정하려고 시도 했습니까? – DumbCoder

+0

올바른 플래그 (예 :'g ++ whatever -lprce')와 연결하고 있습니까? – Darhuuk

답변

0

맹 글링 문제가 있습니까? pcre.h에는 이와 비슷한 것이 있습니까? 그와의 #include 포장하고 C를 통보하지 않으면

extern "C" { 
    // declarations of c functions for c++ 
} 

++은 C의 기능 명령 줄은 링크 작업을 무엇