Mac Lion 上架构 x86_64 ImageMagick 的未定义符号

发布于 2024-12-04 04:31:57 字数 1175 浏览 0 评论 0原文

在 Mac Lion 上,我已经配置、制作并安装了 ImageMagick 的静态版本。一切都很顺利,配置后我得到了

configuring ImageMagick 6.7.2-4
checking build system type... x86_64-apple-darwin11.1.0
checking host system type... x86_64-apple-darwin11.1.0
checking target system type... x86_64-apple-darwin11.1.0
....

但是当我尝试在自己的应用程序中使用静态库时,链接器向我发送了数百个链接错误,例如...

Undefined symbols for architecture x86_64:
  "_XOpenDisplay", referenced from:
      _RenderType in libMagickCore.a(magick_libMagickCore_la-annotate.o)
      _DisplayImages in libMagickCore.a(magick_libMagickCore_la-display.o)
...

"_XInitImage", referenced from:
      _ReadXWDImage in libMagickCore.a(magick_libMagickCore_la-xwd.o)
ld: symbol(s) not found for architecture x86_64

这是我的 LIBS 声明,

LIBS += -L/Library/ImageMagick-6.7.2-4/magick/.libs \
  -L/Library/ImageMagick-6.7.2-4/magick \
  -L/Library/ImageMagick-6.7.2-4/wand/.libs \
  -L/Library/ImageMagick-6.7.2-4/wand \
  -L/usr/X11/lib \
  -R/usr/X11/lib \
  -L/opt/local/lib \
  -L/opt/lib \
  -lMagick++ \
  -lMagickCore \
  -lMagickWand  \
  -ltiff \
  -lfreetype \
  -ljpeg \
  -ljasper -lpng14 -lbz2 -lz -lm -lpthread

我不太确定是什么出了问题或缺少什么。

On Mac Lion I have done a configure, make and install a static version of ImageMagick. All went fine and as result of configure I get

configuring ImageMagick 6.7.2-4
checking build system type... x86_64-apple-darwin11.1.0
checking host system type... x86_64-apple-darwin11.1.0
checking target system type... x86_64-apple-darwin11.1.0
....

But when I am trying to use the static library in my own application, the linker send me hundreds of link error such as...

Undefined symbols for architecture x86_64:
  "_XOpenDisplay", referenced from:
      _RenderType in libMagickCore.a(magick_libMagickCore_la-annotate.o)
      _DisplayImages in libMagickCore.a(magick_libMagickCore_la-display.o)
...

"_XInitImage", referenced from:
      _ReadXWDImage in libMagickCore.a(magick_libMagickCore_la-xwd.o)
ld: symbol(s) not found for architecture x86_64

Here is my LIBS declaration

LIBS += -L/Library/ImageMagick-6.7.2-4/magick/.libs \
  -L/Library/ImageMagick-6.7.2-4/magick \
  -L/Library/ImageMagick-6.7.2-4/wand/.libs \
  -L/Library/ImageMagick-6.7.2-4/wand \
  -L/usr/X11/lib \
  -R/usr/X11/lib \
  -L/opt/local/lib \
  -L/opt/lib \
  -lMagick++ \
  -lMagickCore \
  -lMagickWand  \
  -ltiff \
  -lfreetype \
  -ljpeg \
  -ljasper -lpng14 -lbz2 -lz -lm -lpthread

I am not really sure what is going wrong or what is missing.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

落在眉间の轻吻 2024-12-11 04:31:57

这是一个编译问题,因为 XOpenDisplayX 的一部分。只需在 LIBS 声明中包含库 -lX11 即可。

LIBS += -L/Library/ImageMagick-6.7.2-4/magick/.libs \
  -L/Library/ImageMagick-6.7.2-4/magick \
  -L/Library/ImageMagick-6.7.2-4/wand/.libs \
  -L/Library/ImageMagick-6.7.2-4/wand \
  -L/usr/X11/lib \
  -R/usr/X11/lib \
  -L/opt/local/lib \
  -L/opt/lib \
  -lX11 \
  -lMagick++ \
  -lMagickCore \
  -lMagickWand  \
  -ltiff \
  -lfreetype \
  -ljpeg \
  -ljasper -lpng14 -lbz2 -lz -lm -lpthread

This is a compile problem as XOpenDisplay is apart of X. Simply include the library -lX11 in your LIBS declaration.

LIBS += -L/Library/ImageMagick-6.7.2-4/magick/.libs \
  -L/Library/ImageMagick-6.7.2-4/magick \
  -L/Library/ImageMagick-6.7.2-4/wand/.libs \
  -L/Library/ImageMagick-6.7.2-4/wand \
  -L/usr/X11/lib \
  -R/usr/X11/lib \
  -L/opt/local/lib \
  -L/opt/lib \
  -lX11 \
  -lMagick++ \
  -lMagickCore \
  -lMagickWand  \
  -ltiff \
  -lfreetype \
  -ljpeg \
  -ljasper -lpng14 -lbz2 -lz -lm -lpthread
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文