簡體   English   中英

將代碼塊鏈接到Poppler庫

[英]Linking CodeBlocks to Poppler Library

我是C ++編程的新手,雖然我在一般編碼實踐,約定等方面有一些經驗。但是最近,我對(有限的)知識有所了解。

基本上,我希望編寫一個程序,使我可以從PDF文件中提取注釋。 通過一些研究,我發現Poppler庫將允許我執行此操作。 因此,我下載了它,並開始了在Windows Vista上為CodeBlocks(MinGW)構建它的艱巨過程。

對於感興趣的人,以下站點提供了有關使用Cmake建造Poppler的寶貴信息:

http://www.seppemagiels.com/blog/building-poppler-windows-using-mingw >

無論如何,進入我當前的困境。 遵循Cmake的原始慣例,我的文件結構如下:

...\\工作\\

.............. poppler-0.22.2

.............. poppler-0.22.2_Build

在“ poppler-0.22.2_Build”文件夾中,有一個“ libpoppler.dll.a”文件,我被認為是“ Library”文件夾。 然后,我按照此處所述的說明進行操作:

http://www.learncpp.com/cpp-tutorial/a3-using-libraries-with-codeblocks/

然后,我鏈接到“ poppler-0.22.2_Build”目錄中的libpoppler.dll.a文件和原始源目錄(即poppler-0.22.2)中的.h文件。

現在我的問題是我需要在main.cpp中編寫什么以便可以使用Poppler功能。 起初我只是寫道:

#include "poppler.h"

但是,這返回了“沒有這樣的文件或目錄”錯誤。 然后我嘗試了:

#include "poppler-qt4.h"

然后執行該操作,但是稍后在我的代碼中通知我尚未聲明“ poppler”。 然后我嘗試了:

#include "poppler-qt4.h"
#include "C:\Users\...\poppler-0.22.2\cpp\poppler-document.h"

然后,該錯誤返回“對' imp _ZN7poppler8document14load_from_fileERKsS2_S2_'的未定義引用”錯誤...

所以這就是我現在所處的位置,我完全不知道我應該如何繼續,我希望有人能引導我完成為使Poppler工作而需要采取的步驟,例如,如何使庫鏈接起來,如果那確實是問題所在,或者我該如何克服“ imp _”錯誤。 我真的很想解決這個問題...

在此先感謝您提供的任何幫助。

PS到目前為止,我的main.cpp:

    #include <iostream>
    //#include "poppler.h"
    #include "poppler-qt4.h"
    #include "C:\Users\...\poppler-0.22.2\cpp\poppler-document.h"

    using namespace std;

    int main()
    {

    const string dir = "C:\\Users\\...\\TestPDF.pdf";

    poppler::document *doc = poppler::document::load_from_file(dir)

    return 0;
    }

在Code :: Blocks中,右鍵單擊您的項目名稱,然后選擇“ Build Options ...”。 選擇最左側菜單中顯示項目名稱的選項(應該是第一個選項),然后單擊“鏈接器設置”。 現在按“添加”按鈕並瀏覽到您的DLL文件,然后按“確定”。

為了允許包括庫的頭文件(不在源代碼中寫下完整路徑),您應該告訴將它們的位置添加到編譯器的include路徑中。 您可以在同一窗口的“搜索目錄”選項卡上執行此操作。 確保選擇了“編譯器”子選項卡,然后按“添加”。 瀏覽到包含頭文件的目錄,然后按“確定”。

希望這可以幫助。

暫無
暫無

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

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