【问题标题】:referencing mupdf in Qt4 project在 Qt4 项目中引用 mupdf
【发布时间】:2011-11-16 03:50:24
【问题描述】:

我在 /usr/local/lib 中有 libfitz.a 和 libmupdf.a(以前编译过)。 然后我包括了标题:

#include <fitz.h>
#include <mupdf.h>

然后我输入:

INCLUDEPATH  +=/home/pc/sviluppo/mupdf-0.9
INCLUDEPATH  +=/home/pc/sviluppo/mupdf-0.9/fitz
INCLUDEPATH  +=/home/pc/sviluppo/mupdf-0.9/pdf

LIBS         += -L/usr/local/lib -lfitz
LIBS         += -L/usr/local/lib -lmupdf

在 .pro 文件中,但我的程序只访问标题中的类型,而不是库中的类型。错误是

/.../mainwindow.cpp:-1: error: undefined reference to `pdf_open_xref(pdf_xref_s**, char const*, char*)'

怎么了?

【问题讨论】:

  • 您是如何和/或为哪种架构(32 位/64 位)安装 Qt 和 mupdf 的?
  • 我有32位系统,我成功编译了mupdf,因为工具可用;我在 Qt-4 中成功使用了 poppler;现在怎么了?

标签: c++ compilation qt4 mupdf


【解决方案1】:

这是一个 C 库,他们没有使用 extern "C" 来允许将标头轻松包含在 C++ 中。
所以你必须自己做:

extern "C" {
    #include <fitz.h>
    #include <mupdf.h>
}

根据mupdf MakeFile,你应该把库按顺序放在你的.pro中(更依赖的静态库应该放在它的依赖之前):

LIBS         += -L/usr/local/lib -lmupdf -lfitz
LIBS         += -lfreetype -ljbig2dec -ljpeg -lopenjpeg -lz -lm

【讨论】:

  • thx @alexisdm 现在似乎 qt-creator 正在尝试编译所有 mupdf,因此发出了很多错误(>1000)。例如第一个错误是 /usr/local/lib/libmupdf.a(pdf_page.o):-1: In function pdf_find_page_number': It also seems that it encounters errors when reading from usr/local/lib libraries like libmupdf.a then others errors like /home/pc/sviluppo/mupdf-0.9/pdf/pdf_page.c:36: error: undefined reference to fz_dict_gets'
  • @P5music 这些是链接器错误,请尝试我添加到答案中的内容。
猜你喜欢
  • 2014-05-16
  • 2011-10-06
  • 2014-03-18
  • 2015-01-12
  • 2013-01-04
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多