2016-01-13 40 views
1

我按照此document构建Go Imagick库。无法为golang构建magick

,当我跑以下命令

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)。

+0

这正在通过问题[#68](https://github.com/gographics/imagick/issues/68)进行跟踪。一旦我确认并进行修复,我将输入一个答案来解释为什么会发生这种情况。 – jdi

回答

1

由于对问题跟踪的#68提到,您使用的方式太旧的版本的ImageMagick的,这早测试的主分支版本。您的Linux发行版比当前可用的稳定发行版旧。

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

+0

你能帮我在这里'http://stackoverflow.com/questions/35550850/lot-的-TEMP-magick-文件创建功能于临时folder' – Naresh

1

他们的文档mentionno_pkgconfig必须与手动设置GCO_CFLAGSCGO_LDFLAGS一起使用。所以,这样的事情应该工作:

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

我仍然收到错误'无法确定C.ClattenAlphaChannel的名称种类不能确定C.RemoveAlphaChannel的名称种类 – Naresh

+0

什么是您的操作系统和Go版本?我的解决方案适用于您的原始错误,但我无法重现这些。 –

+0

ubuntu 12.04和go1.5.2.linux-386 – Naresh