2006年8月10日の日記の1番目の記事へのコメント
■libpng-1.2.12とImageMagick-6.2.8
x86_64だとImageMagickのmake checkが通らんぞー.png絡みで「undefined symbol: png_get_asm_flags」とか言ってます.libpngのソースにはこの関数はあるんですが,libpng.soには無いっすね.
libpngのpngget.cを見ると「PNG_ASSEMBLER_CODE_SUPPORTED」がdefineされてる場合に限りこの関数ができるようです.んで,「PNG_ASSEMBLER_CODE_SUPPORTED」自体はpngconf.hでdefineされてます.ただ,「PNG_NO_ASSEMBLER_CODE」が定義されてるとdefineされないようになってて,Makefile見たら「-DPNG_NO_ASSEMBLER_CODE」って書いてありました.なるほど.
で,ImageMagick側ではpng.hをincludeしていて,その中でpngconf.hがincludeされてるわけですが,pngconf.hはMake時の「-DPNG_NO_ASSEMBLER_CODE」なんか知らないわけで,あっさり「PNG_ASSEMBLER_CODE_SUPPORTED」がdefineされてしまい,その結果ImageMagickのpng.cは「png_get_asm_flags」を使うようにコンパイルされちゃう,と・・・(;´Д`).面倒くさいんでinclude/pngconf.hに「#define PNG_NO_ASSEMBLER_CODE」書き足して解決.このクオリティは微妙だ.
2006年8月10日の日記の1番目の記事へのコメント
[コメントを書く]