2

我在 /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*)'

怎么了?

4

1 回答 1

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
于 2011-09-14T10:42:59.640 回答