在Mac上使用ImageMagick库进行编译时出现未定义的符号错误。

时间:2017-12-09 16:54:06

标签: imagemagick undefined symbols

当我尝试编译我的简单代码,这意味着使用ImageMagick库调整图像文件的大小时,我收到以下错误。

$ gcc `pkg-config --libs --cflags ImageMagick` imagemagick_example.c

Undefined symbols for architecture x86_64:
  "_DestroyMagickWand", referenced from:
      _main in ccx4lMf2.o
  "_MagickGetImageHeight", referenced from:
      _main in ccx4lMf2.o
  "_MagickGetImageWidth", referenced from:
      _main in ccx4lMf2.o
  "_MagickReadImage", referenced from:
      _main in ccx4lMf2.o
  "_MagickResizeImage", referenced from:
      _main in ccx4lMf2.o
  "_MagickSetImageCompressionQuality", referenced from:
      _main in ccx4lMf2.o
  "_MagickWandGenesis", referenced from:
      _main in ccx4lMf2.o
  "_MagickWandTerminus", referenced from:
      _main in ccx4lMf2.o
  "_MagickWriteImage", referenced from:
      _main in ccx4lMf2.o
  "_NewMagickWand", referenced from:
      _main in ccx4lMf2.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

我搜索了一种方法来解决这个问题一个小时,找不到任何工作。 我正在使用macOS 10.13.1和home-brew安装的ImageMagick 7.0.7-14。

1 个答案:

答案 0 :(得分:0)

使用MagickWand作为C API。

gcc `pkg-config --libs --cflags MagickWand` imagemagick_example.c

或者跳过pkg-config并使用ImageMagick附带的辅助工具。

MagickWand-config --libs --cflags