色んなバージョンの ImageMagick をまとめて build (2)
色んなバージョンの ImageMagick をまとめて build - yoyaのメモ の続き
ビルドする
少し修正。ImageMagick-N.N.N-P.tar.gz を伸長して
ImageMagick-N.N.N-P でなく ImageMagick-N.N.N が出来る事があるので。
- allimagemagickbuild.sh
for file in `ls -r ImageMagick*.tar.*` ; do version=`echo $file | sed 's/ImageMagick-\(.*\).tar\(.*\)/\1/'` if [ "$pre_version" != "$version" ] ; then echo === $file === tar xf $file dir="ImageMagick-$version" if ! [ -d $dir ] ; then version2=`echo $file | sed 's/ImageMagick-\(.*\)-[0-9]\+.tar\(.*\)/\1/'` dir="ImageMagick-$version2"; fi if [ -d $dir ] ; then (cd $dir ; ./configure --without-perl --prefix=$HOME/ImageMagick/$version ; make install) rm -rf $dir fi pre_version=$version fi done
yoya@sakura:~/imagemagick/src$ sh allimagemagickbuild.sh >& log.txt
結果
yoya@sakura:~$ ls /home/yoya/imagemagick/src/ImageMagick-*.gz | wc 71 71 3872 yoya@sakura:~$ ls /home/yoya/ImageMagick/ | wc 53 53 462
結構、build に失敗してる。
課題
そのままだと build が通らないバージョンがあるので、対処法を考える。
- configue に失敗する (5.2.6)
configuring ImageMagick 5.2.6 checking build system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized
-
- Debian なら /usr/share/libtool/config/config.* をコピーしてくれば OK
- extra qualification でコンパイルエラー (5.3.9)
Magick++/CoderInfo.h:54: error: extra qualification 'Magick::CoderInfo::' on mem ber 'CoderInfo'
-
- -f
- extra qualification でコンパイルエラー (5.4.9-1)
Magick++/Drawable.h:2409: error: extra qualification 'Magick::PathQuadraticCurve toArgs::' on member 'PathQuadraticCurvetoArgs'
- strcpy でコンパイルエラー (5.5.7-36, 6.0.0-7, 6.0.8-3, 6.2.3-6, 6.2.4-6, 6.2.5-5)
Magick++/lib/Geometry.cpp: In member function 'const Magick::Geometry& Magick::G eometry::operator=(const std::string&)': Magick++/lib/Geometry.cpp:191: error: 'strcpy' was not declared in this scope
-
- 頭の方に #include
を入れればOK (atexit の問題が出るので、stdlib.h の対処も)
- 頭の方に #include
- atexitでコンパイルエラー (6.2.6-8, 6.2.7-8, 6.2.8-6, 6.2.8-7, 6.2.8-8, 6.2.9-1, 6.2.9-8, 6.3.0-1, 6.3.0-7, 6.3.1-6, 6.3.2-9, 6.3.3-10, 6.3.4-10)
Magick++/lib/Image.cpp: In function 'void Magick::InitializeMagick(const char*)' : Magick++/lib/Image.cpp:3885: error: 'atexit' was not declared in this scope
-
- 頭の方に #include
を入れればOK
- 頭の方に #include