我对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;
}
这是关于编写C++代码(以及使用Codeblocks设置构建环境)还是关于提取PDF文件的注释? –
嗨Enno,谢谢你回到我身边。 基本上,我只是想能够链接到Poppler库(我相信我已经构建)并使用它的功能。例如使用其“load_from_file”函数。 通过一些研究,我发现“未定义的引用”总是涉及某种形式的链接器错误,而“_imp__”错误与将C代码转换为C++或某种性质的东西有关,点我在我的头上。 总结如何链接“dll.a”和/或如何解决“_imp__”错误? 感谢您提供任何帮助。 – user1182556