2011-04-06 94 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 Package Manager安裝了該軟件包。

這是DevPak包安裝:http://www.mediafire.com/?zb3wc6q07sddsac我用來安裝庫(PCRE-6.4.1)

我需要一些指導,這將導致我corretly安裝該庫(這樣我就可以工作常用表達)。

如果不是,我會很喜歡對C++庫的引用,以支持易於在此Dev-C++或CodeBlocks上安裝的正則表達式。

感謝您的幫助!

編輯: 感謝您的幫助,通過檢查該線程兩個線程How do I get PCRE to work with C++?

又啞的編碼器的反應解決了這個。

+1

什麼是命令行做鏈接? – Mark 2011-04-06 15:12:56

+1

您是否嘗試設置路徑和庫依賴關係? – DumbCoder 2011-04-06 15:14:43

+0

你是否正確鏈接標誌(例如'g ++ whatever -lprce')? – Darhuuk 2011-04-06 15:18:36

回答

0

您是否遇到了名稱損壞問題? pcre.h中有這樣的東西嗎?

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

如果不換與你的#include,它會告訴C++它調用C函數

相關問題