链接CodeBlocks到Poppler库

Linking CodeBlocks to Poppler Library

本文关键字:Poppler CodeBlocks 链接      更新时间:2023-10-16

我对c++编程比较陌生,虽然我在一般编码实践,惯例等方面有一些经验…最近我的(有限的)知识到了悬崖边。

基本上我想写一个程序,允许我从PDF文件中提取注释。经过一番研究,我发现波普勒图书馆允许我这样做。因此,我下载了它,并开始了在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"文件,我一直认为这是一个库文件夹。然后,我按照下面描述的说明进行操作:

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"

然而,这返回一个"No such file or directory"错误。然后我试了:

#include "poppler-qt4.h"

然后执行,但是我后来在代码中被告知"poppler"没有被声明。然后我试了:

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

然后返回"未定义的引用'imp_ZN7poppler8document14load_from_fileERKsS2_S2_'"错误…

所以这就是我现在的位置,我完全不知道我应该如何继续,我希望有人能通过我需要采取的步骤来让Poppler工作,即我如何让库链接,如果这确实是问题,或者我如何克服"imp_"错误。对于这个问题我真的是束手无策了。

事先感谢你方提供的任何帮助。

注:My main.cpp至今:

    #include <iostream>
    //#include "poppler.h"
    #include "poppler-qt4.h"
    #include "C:Users...poppler-0.22.2cpppoppler-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路径中。您可以在同一窗口的"搜索目录"选项卡上进行此操作。确保选择"编译器"子选项卡并按"添加"。浏览到包含头文件的目录,按"Ok"键。