Mac Lion上的架构x86_64 ImageMagick的未定义符号 [英] Undefined symbols for architecture x86_64 ImageMagick on Mac Lion

查看:106
本文介绍了Mac Lion上的架构x86_64 ImageMagick的未定义符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Mac Lion上,我完成了配置,制作和安装ImageMagick的静态版本。一切顺利,由于配置我得到

配置ImageMagick 6.7.2-4 
检查构建系统类型... x86_64-apple- darwin11.1.0
检查主机系统类型... x86_64-apple-darwin11.1.0
检查目标系统类型... x86_64-apple-darwin11.1.0
....

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



'pre>
为架构x86_64的未定义符号:
的_XOpenDisplay,从引用:在libMagickCore.a(magick_libMagickCore_la-annotate.o)
$ b _RenderType在libMagickCore.a(magick_libMagickCore_la-XWD
_ReadXWDImage:在libMagickCore.a(magick_libMagickCore_la-display.o)
$ b _DisplayImages ...

_XInitImage,引用的。 o)
ld:找不到架构的符号x86_64

这是我的LIBS声明

 LIBS + = -L / Library / ImageMagick-6.7.2-4 / magic k / .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

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

解决方案

这是一个编译问题 XOpenDisplay X 的一部分。只需在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


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.

解决方案

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

这篇关于Mac Lion上的架构x86_64 ImageMagick的未定义符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆