原以为是一项“简单任务”,结果足足玩了2天。
要安装JMagick,必须先安装ImageMagick。
ImageMagick在FC3下有RPM,所以apt-get install ImageMagick。安装测试好之后,运行jmagick的./configure,死左。它说找不到ImageMagick的api.h。
上JMagick的网查,有人说要安装ImageMagick-devel,OK,apt-get install ImageMagick-devel。再运行jmagick的./configure,死在之前的错误的下一句,说找不到ImageMagick的Lib所在。
再上网查,有人说要指定ImageMagick/lib,但是ImageMagick下根本就没有lib这个目录,死心。
无计,download source自己compile吧。./configure, make all, make install,测试,不支持jpeg!!?
再查,有人说要libjpeg, libpng, libwmf, ...但所有这些包我都有,而且昨天才用apt-get upgrade更新过系统,怎可能?
继续查,终于有人说出真相(都系鬼佬好,肯讲真话),要libjpg-devel, libpng-devel, ...至真!!顺便安装了jasper,可支持jpeg2000,可惜的是apt-get找不到jasper,要自己down RPM。
ImageMagick安装好,就再行JMagick的./configure,这次OK了:) make all,有错!!?话没有对magick_PixelPacket.c compile的rule,my god...
又查,有人说./configure, make all, make, cd generate, 行一个自己写的shall script,然后又...非常复杂,...
算,可能是中间一个step做错了,又或者这个错是个bug,已经被fix。rm -fR JMagick, cvs -d :pserver:anonyous@jmagick.yro....
再运行./configure, make all, 还是有错。
不死心,make clean, ./configure, make all, 没有出错!!!!make install, make test, 所有结果正常!!!!
运行我的app,出错,UnsafifiedLinkError,找不到JMagick的iso。
查,export LD_LIBRARY_PATH="/usr/local/lib",BINGO!!
最后总结,再一次证明linux下的东西是灵活而强大的,不是linux够灵活强大,是要用linux的人要够灵活强大,否则,还是用windows吧。要我再做一次,可能就compile不过了。