使用PCRE库编译错误的c++未定义引用

Compiling error C++ - undefined references using PCRE library

本文关键字:c++ 未定义 引用 错误 PCRE 编译 使用      更新时间:2023-10-16

我在编译代码以测试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:regular.expressions@example.comrn" 
                  "From:exddd@43434.comrn" 
                  "From:7853456@exgem.comrn"; 
    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), %sn", 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: %.*sn", 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管理器安装包。

这是DevPak包安装程序: http://www.mediafire.com/?zb3wc6q07sddsac我用来安装库(pcree -6.4.1)

我想要一些指导,这将引导我正确安装这个库(所以我可以使用正则表达式)。

如果没有,我希望有一个c++库的参考,以支持易于安装在此dev - c++或CodeBlocks上的正则表达式。

谢谢你的帮助!

编辑:

感谢您的帮助,通过检查这个线程解决了这个问题我如何让PCRE与c++一起工作?

你有名字混淆的问题吗?pcreh里面有类似的东西吗?

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

如果没有#include,它会通知c++正在调用C函数