构建 MuPDF 并注册文档处理程序



在这里,我们有一个问题,一个答案和一些快乐的人。

但我有不同的情况,我正在用C++编码,我将自己构建MuPdf。因此,当我在fz_open_document_with_stream之前添加fz_register_document_handlers函数时,我将获得 5 个未解析的外部符号

_opj_image_destroy (2 times)
_opj_copy_image_header
_opj_image_comp_header
_opj_image_create

我可以通过链接openjpeglibopenjpegimage.c摆脱其中的 3 个,但_opj_image_destroy在我的编译错误列表中是库存的!

[更新]

穆大卫版本:1.6
我不知道这是否是正确的方法,但我创建了一个名为Native的Visual Studio项目,并将Mupdf源代码放入其中并尝试编译。
然后我在其他 c++ 项目中使用它的标头(并在其中使用声明"C")并将 Native 链接到它。
它工作正常,直到我尝试将文件作为流而不是文件地址打开。
因此,我的项目失败并出现此错误:"未注册文档处理程序"。
此错误是由document.c文件引起的。

我搜索并找到了上面链接的页面,并更改了来源。
编译错误出现在该更改之后!

感谢您的帮助,对不起我的英语...

首先,你还没有说你正在使用什么版本的MuPDF。我假设您使用的是 git 的最新版本(截至 2015 年 2 月 1 日,目前为 1.6)。

其次,你还没有告诉我们任何关于你如何构建MuPDF的有用信息。如果不确切知道你改变了什么,就很难推测你做错了什么。

如果您使用 c++ 编译器编译普通 .c 文件,那么您可能需要使用 extern "C" 声明对文件进行一些包装。

请随时在 #ghostscript irc频道上与我们联系并告诉我们更多信息。

[更新]

在我看来,您似乎缺少openjpeg解码器。你不能只是从openjpeg源代码中添加一个文件,并期望它神奇地工作。

既然我们已经为您提供了Visual Studio项目,为什么还要创建自己的Visual Studio项目?platform/win32/mupdf.sln

最新更新