2013-04-17 68 views
0

我对C++编程相对比较陌生,虽然我在一般编码实践,惯例等方面有一些经验......最近我已经走到我的(有限)知识的悬崖边缘。将代码块链接到Poppler Library

基本上我想编写一个程序,让我从PDF文件中提取注释。通过一些研究,我发现Poppler图书馆可以让我做到这一点。于是我下载了它,开始了在Windows Vista上为CodeBlocks(MinGW)构建它的艰难过程。

对于那些有兴趣,以下网站提供关于poppler的建设与CMake的宝贵信息:

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/

我随后联系到libpoppler.dll.a文件中的“poppler的-0.22.2_Build”目录并在原始的.h文件源目录(即poppler-0.22.2)。

现在我的问题是我需要在我的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" 

,然后返回“未定义的引用“小鬼 _ZN7poppler8document14load_from_fileERKsS2_S2_”错误......

所以这就是我现在,我完全不知道我是怎么要继续,我希望有人能走路我通过我需要得到poppler的工作,即在如何获取链接到该库,如果这确实是问题,或者我该如何克服“小鬼步骤 _“错误。我真的在我的智慧结束这个问题...

在此先感谢您的任何帮助,您可以提供。

P.S.到目前为止,我的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; 
    } 
+0

这是关于编写C++代码(以及使用Codeblocks设置构建环境)还是关于提取PDF文件的注释? –

+0

嗨Enno,谢谢你回到我身边。 基本上,我只是想能够链接到Poppler库(我相信我已经构建)并使用它的功能。例如使用其“load_from_file”函数。 通过一些研究,我发现“未定义的引用”总是涉及某种形式的链接器错误,而“_imp__”错误与将C代码转换为C++或某种性质的东西有关,点我在我的头上。 总结如何链接“dll.a”和/或如何解决“_imp__”错误? 感谢您提供任何帮助。 – user1182556

回答

0

代码:: Blocks,右键单击项目的名称,然后选择“生成选项...”。在最左侧菜单中选择说明项目名称的选项(应该是第一个选项),然后单击“链接器设置”。现在按“添加”按钮并浏览到您的DLL文件,然后按“确定”。

要允许包含库的头文件(无需在源代码中写下完整路径),应该将其位置添加到编译器的包含路径中。您可以在同一窗口的“搜索目录”选项卡上执行此操作。确保选择了“编译器”子选项卡并按下“添加”。浏览到包含头文件的目录,然后按“确定”。

希望这会有所帮助。