Неопределенные символы для архитектуры x86_64 ImageMagick на Mac Lion - PullRequest
5 голосов
/ 13 сентября 2011

На 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

Я не совсем уверен, что идет не так или чего не хватает.

1 Ответ

0 голосов
/ 03 июня 2013

Это проблема компиляции, так как XOpenDisplay отличается от X.Просто включите библиотеку -lX11 в декларацию 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 \
  -lX11 \
  -lMagick++ \
  -lMagickCore \
  -lMagickWand  \
  -ltiff \
  -lfreetype \
  -ljpeg \
  -ljasper -lpng14 -lbz2 -lz -lm -lpthread
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...