簡體   English   中英

如何讓PCRE與C ++一起使用?

[英]How do I get PCRE to work with C++?

這是一個新手問題,但我希望我能盡可能清楚地表達我的問題。

我正在嘗試用C ++進行模式匹配。

我從這里下載了WinRE版本的PCRE,並將下載的pcre3.dll和pcreposix3.dll文件放入Dev-CPP的lib文件夾(我使用的是Bloodshed Dev-C ++ 4.9.9 IDE)。

我還下載了一個pcrecpp.h頭文件並將它放在同一個目錄中我正在編寫以下代碼(實際上並沒有寫。我正在處理來自PDF教程的示例代碼,名為PCRE-Perl Compatible Regular Express)。

但我無法讓它發揮作用。 代碼如下:

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

    using namespace std;

    int main()
    {
       int i;
       string s;
       pcrecpp::RE re("(\\w+):(\\d+)");
       if (re.error().length() > 0) {
          cout << "PCRE compilation failed with error: " << re.error() << "\n";
       }
       if (re.PartialMatch("root:1234", &s, &i))
       cout << s << " : " << i << "\n";
    }

當我編譯代碼時,Dev-C ++給了我很多錯誤,包括:“`pcrecpp'尚未聲明”和“RE”未聲明。

我該如何處理下載的文件並修復我的問題? 或者有什么明顯的東西讓我失蹤?

如果為#include指定帶有尖括號( <> )的文件,那么只要編譯器知道它們,編譯器就只會在外部庫的位置中查找該標題。
如果您改為使用引號( "" ),則編譯器還將查找當前項目的位置,該項目通常包括當前目錄。

您當前問題的快速解決方法是使用

 #include "pcrecpp.h" 

另一種方法是告訴編譯器它可以在哪里找到PCRE庫的頭文件。
您必須告訴編譯器它可以在哪里找到PCRE庫的頭文件。 如何做到這一點不同於構建系統到構建系統,但如果您使用的是IDE,那么應該有一個選項來指定“包含目錄”。 您可以在此處添加PCRE標頭的目錄(帶完整路徑)。


作為旁注:當編譯器為您提供大量錯誤和警告時,請始終先修復第一個錯誤和警告。 我猜想在這種情況下它就像“無法找到標題:pcrecpp.h”。
通常的情況是,如果編譯器在遇到問題后嘗試繼續,則會發現更多問題,這些問題是第一個問題的后續問題。 當第一個問題得到解決時,這些問題也會神奇地消失。

         cout << “PCRE compilation failed with error: “ << re.error() << “\n”;

我剛剛復制了你的代碼並嘗試編譯它。 我收到了與您報告的相同的錯誤。 問題是你輸入cout的字符串沒有正確啟動/結束。 你應該使用真正的“而不是看起來像雙引號(”)的標記,但事實並非如此。 如果你修復它,你的代碼應該編譯沒有任何錯誤。

g ++ -lpcrecpp ......

你需要在g ++命令中添加'-lpcrecpp'

你已經包括在內

#include <pcrecpp.h> 

要檢查的第一點但是在代碼的inlcude路徑中是文件。 你下載了可安裝的嗎? 檢查機器上的安裝位置。

第二點是檢查是否定義了庫路徑,以便在編譯和鏈接期間解析它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM