2016年11月11日金曜日

MacではGNU libiconvは必要ないみたいだ

これは、以前から経験していたことだが、今回ffmpegコンパイルガイドで同じ轍を踏んだので、戒めとして書く。

GNU libiconvは、例えばWindowsから受け取ったzipアーカイブを文字化けさせないunzipをコンパイルするために必要なライブラリだ。

だが、macOSには昔から標準でlibiconvが入っている。こちらを使わないとコンパイルできないものもあり、例えばrsyncなどはそうだ。(筆者はOS標準でないrsyncを使っている)

実はMacでffmpegをコンパイルする時もmacOS標準のlibiconvを使うべきだったのだ。今回メーリングリストでカールという偉い人に怒られて(笑)初めて気がついた。(Time Machineの記録を辿ると、仕様変更があったのかもしれない)

発端は2016年9月24日に発表されていたffmpegのSDL1からSDL2への移行であった。筆者は呑気にもこれに気づかず、ffmpegコンパイルガイドの更新を怠っていた。そして2016年11月8日になってガイドを更新し、ffplayがビルドされないことに気がついた。

SDL2をコンパイル、インストールしてみたものの、一向にffmpegのconfigureはそれを認識しない。大いにハマった。
ハマった中でどうもlibiconvが絡んでいるらしいことはなんとか把握した。ffmpegコンパイル環境を最初から作り直す過程でそれを確認し、メーリングリストで吠えついたら、逆に怒られた。「お前、どうしてOS標準じゃないlibiconvを入れるんだ!」と…。

恥をさらけ出してしまうのだが、筆者がffmpegコンパイル環境にGNU libiconvを入れていたのは、Windows版のffmpegコンパイルガイドを流用していたことと、OS標準のlibiconvが日本語に対応していないと信じていたのが理由だった。

2013年10月にガイドを書いて以来、最大の間違いが3年の時を経て修正された。筆者の乏しい経験に限るという条件はつくが、MacではGNU libiconvは必要ないみたいだ。

0 件のコメント :

コメントを投稿