无法为 golang 构建 magick

unable to build magick for golang

我正在关注此 document 以构建 Go Imagick 库。

当我运行下面的命令

go build -tags no_pkgconfig imagick

它抛出以下异常:

# imagick
src/imagick/affine_matrix.go:8:29: fatal error: wand/MagickWand.h: No such file or directory
compilation terminated

现在要解决这个问题,我还按照许多人的建议安装了以下软件包来解决错误。但是也没用。

sudo apt-get install libmagickwand-dev libmagickcore-dev imagemagick

此外,当我 运行 go build imagick 它抛出以下错误:

# imagick
could not determine kind of name for C.FlattenAlphaChannel
could not determine kind of name for C.RemoveAlphaChannel

pkg-config --cflags --libs MagickWand 的输出给出了正确的输出

-fopenmp -I/usr/include/ImageMagick  -lMagickWand -lMagickCore

ImageMagick 仅安装到此路径(/usr/include/ImageMagick)。

他们的文档 mention no_pkgconfig 必须与手动设置 GCO_CFLAGSCGO_LDFLAGS 一起使用。所以这样的事情应该有效:

export CGO_CFLAGS="$(pkg-config --cflags MagickWand)"
export CGO_LDFLAGS="$(pkg-config --libs MagickWand)"
go build -tags no_pkgconfig

如问题跟踪器 #68 所述,您使用的 ImageMagick 版本太旧,早于为 master 分支测试的版本。您的 Linux 发行版比当前可用的稳定版本旧。

您应该手动安装更新的 ImageMagick,并从 apt 中删除一个。或者使用一些允许您管理多个版本的解决方案。