Edited at

cpanm でTkのビルドエラーを解決する


起きたこと:

実行コマンド

$ cpanm Tk

そうすると、ログから失敗することがわかりました。

原因を追跡しました。次のmakeでエラーになりました・・・

$ cd jpeg && make libjpeg.a

make[2]: ディレクトリ '/home/HogeDesu/.cpan/build/Tk-804.034-1/JPEG/jpeg' に入ります
make[2]: 'libjpeg.a' は更新済みです.
make[2]: ディレクトリ '/home/HogeDesu/.cpan/build/Tk-804.034-1/JPEG/jpeg' から出ます
make[2]: ディレクトリ '/home/HogeDesu/.cpan/build/Tk-804.034-1/JPEG/jpeg' に入ります
make[2]: 'all' に対して行うべき事はありません.
make[2]: ディレクトリ '/home/HogeDesu/.cpan/build/Tk-804.034-1/JPEG/jpeg' から出ます
make[2]: ディレクトリ '/home/HogeDesu/.cpan/build/Tk-804.034-1/JPEG/jpeg' に入ります
make[2]: *** ターゲット 'test_dynamic' を make するルールがありません. 中止.
make[2]: ディレクトリ '/home/HogeDesu/.cpan/build/Tk-804.034-1/JPEG/jpeg' から出ます
make[1]: *** [Makefile:871: subdirs-test_dynamic] エラー 2
make[1]: ディレクトリ '/home/HogeDesu/.cpan/build/Tk-804.034-1/JPEG' から出ます
make: *** [Makefile:1439: subdirs-test_dynamic] エラー 2
SREZIC/Tk-804.034.tar.gz
/usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports SREZIC/Tk-804.034.tar.gz

test_dynamicをビルドできないようです。

makefileをじっくり見れば、どのソースをビルドしているかをわかるかもしれませんが、めんどくさいからしませんでした。

G先生に頼って調べても原因不明だったが、とりあえず次のコマンドを試したら成功しました。。

原因?不明と言ってるだろう💢 make libjepeg.a のすべてが悪いです。


やったこと:

$ sudo apt-get install libjpeg-dev libpng-dev

EOF