如何让PCRE与Code :: blocks一起正常工作?

时间:2013-07-12 00:06:44

标签: c++ regex windows codeblocks

我在Code :: blocks中使用PCRE时遇到了一些问题。我从here下载了PCRE。并完成了here提到的所有步骤。但是我在执行期间收到了pcr3.dll缺失错误。

  

程序无法启动,因为您的pcre3.dll丢失了   电脑。尝试重新安装该程序以解决此问题。

My code

#include <iostream>
#include <regex.h>
using namespace std;


 int main(){

 regex_t reg;

 string pattern = "[^tpr]{2,}";
 string str = "topcoder";

 regmatch_t matches[1];

 regcomp(&reg,pattern.c_str(),REG_EXTENDED|REG_ICASE);

 if (regexec(&reg,str.c_str(),1,matches,0)==0) {
       cout << "Match " ;
       cout << str.substr(matches[0].rm_so,matches[0].rm_eo-matches[0].rm_so) ;
       cout << " found starting at: " ;
       cout << matches[0].rm_so ;
       cout << " and ending at " ;
       cout << matches[0].rm_eo ;
       cout << endl;
  } else {
       cout << "Match not found.";
       cout << endl;
 }
 regfree(&reg);

  return 0;
 }

我不知道如何解决这个问题,任何想法?

PS:上面提到的代码来自this教程。

1 个答案:

答案 0 :(得分:1)

将DLL复制到与您运行的可执行文件相同的目录中。如果可以,那么您没有正确安装DLL,或者至少没有以一般程序可以找到的方式安装DLL。查看DLL Search Order的文档,了解如何让系统找到DLL。特别是,您需要知道有一个链接器和一个加载器(也就是动态/运行时链接器/加载器),但在CodeBlocks中只配置了其中一个!