2

我使用以下配置在带有 Qt4.7.3 的 Mac OS-X 10.6 上编译 Poppler 库:

./configure --enable-poppler-qt4 --enable-static --enable-poppler-cpp --enable-zlib

它配置成功,然后我make它,然后make install它。

然后我尝试在我的应用程序中使用静态库,如下所示:

INCLUDEPATH+=/user/local/include/poppler
LIBS+=/usr/local/lib/libpoppler-cpp.a
LIBS+=/usr/local/lib/libpoppler-qt4.a
LIBS+=/usr/local/lib/libpoppler.a
LIBS+=/usr/local/lib/libfontconfig.a

但是当我编译我的应用程序时,我收到以下错误消息:

Undefined symbols:
  "_FT_Get_Sfnt_Name_Count", referenced from:
      _FcFreeTypeQueryFace in libfontconfig.a(fcfreetype.o)
  "_FT_Outline_Get_CBox", referenced from:
      SplashFTFont::makeGlyph(int, int, int, SplashGlyphBitmap*, int, int, SplashClip*, SplashClipResult*)in libpoppler.a(SplashFTFont.o)
  "_FT_Library_Version", referenced from:
      SplashFTFontEngine::SplashFTFontEngine(bool, bool, bool, FT_LibraryRec_*)in libpoppler.a(SplashFTFontEngine.o)
  "_XML_SetUserData", referenced from:
      _FcConfigParseAndLoad in libfontconfig.a(fcxml.o)
  "_FT_Done_Face", referenced from:
      _FcFreeTypeQuery in libfontconfig.a(fcfreetype.o)
      SplashFTFontFile::~SplashFTFontFile()in libpoppler.a(SplashFTFontFile.o)
      SplashFTFontFile::~SplashFTFontFile()in libpoppler.a(SplashFTFontFile.o)
  "QDomDocument::createCDATASection(QString const&)", referenced from:
      Poppler::Annotation::store(QDomNode&, QDomDocument&) constin libpoppler-qt4.a(libpoppler_qt4_la-poppler-annotation.o)
      Poppler::TextAnnotation::store(QDomNode&, QDomDocument&) constin libpoppler-qt4.a(libpoppler_qt4_la-poppler-annotation.o)
  "_FT_Load_Glyph", referenced from:
      _FcFreeTypeCheckGlyph in libfontconfig.a(fcfreetype.o)
      SplashFTFont::getGlyphAdvance(int)    in libpoppler.a(SplashFTFont.o)
      SplashFTFont::getGlyphPath(int)    in libpoppler.a(SplashFTFont.o)
      SplashFTFont::makeGlyph(int, int, int, SplashGlyphBitmap*, int, int, SplashClip*, SplashClipResult*)in libpoppler.a(SplashFTFont.o)
  "QDomNode::appendChild(QDomNode const&)", referenced from:
      Poppler::DocumentData::addTocChildren(QDomDocument*, QDomNode*, GooList*)     in libpoppler-qt4.a(libpoppler_qt4_la-poppler-private.o)
      Poppler::Annotation::store(QDomNode&, QDomDocument&) constin libpoppler-qt4.a(libpoppler_qt4_la-poppler-annotation.o)
      Poppler::Annotation::store(QDomNode&, QDomDocument&) constin libpoppler-qt4.a(libpoppler_qt4_la-poppler-annotation.o)
      Poppler::Annotation::store(QDomNode&, QDomDocument&) constin libpoppler-qt4.a(libpoppler_qt4_la-poppler-annotation.o)
      Poppler::Annotation::store(QDomNode&, QDomDocument&) constin libpoppler-qt4.a(libpoppler_qt4_la-poppler-annotation.o)
      Poppler::Annotation::store(QDomNode&, QDomDocument&) constin libpoppler-qt4.a(libpoppler_qt4_la-poppler-annotation.o)
      Poppler::Annotation::store(QDomNode&, QDomDocument&) constin libpoppler-qt4.a(libpoppler_qt4_la-poppler-annotation.o)
      Poppler::Annotation::store(QDomNode&, QDomDocument&) constin libpoppler-qt4.a(libpoppler_qt4_la-poppler-annotation.o)
      Poppler::Annotation::store(QDomNode&, QDomDocument&) constin libpoppler-qt4.a(libpoppler_qt4_la-poppler-annotation.o)
      Poppler::MovieAnnotation::store(QDomNode&, QDomDocument&) constin libpoppler-qt4.a(libpoppler_qt4_la-poppler-annotation.o)
      Poppler::SoundAnnotation::store(QDomNode&, QDomDocument&) constin libpoppler-qt4.a(libpoppler_qt4_la-poppler-annotation.o)
      Poppler::FileAttachmentAnnotation::store(QDomNode&, QDomDocument&) constin libpoppler-qt4.a(libpoppler_qt4_la-poppler-annotation.o)

我在配置命令或 INCLUDE/LIBPATH 变量中是否错了?还是有其他问题?

4

1 回答 1

0

Poppler 有几个依赖项,可以使用以下命令列出:

 otool -L /opt/local/lib/libpoppler.19.dylib

两个人有类似的问题,还有第三个人有历史洞察力。

于 2012-09-19T02:17:40.617 回答