2005-11-10

ライブラリのリンクパスを変更して実行する方法

post : 2005-11-10 23:48 , mod : 2005-11-10 23:50 | ,

dps BLOG : ネ申かも 経由。MobileHackerz - [ウェアラブル奮闘日記] にて、携帯動画変換君用 ffmpeg の Mac OS X 向けビルドが公開されていました。以前からGPLでソースコードは公開されていたのだけれど、バイナリだとありがたいです。2005-11-08 のものはライブラリがダイナミックリンクになっていて、/usr/local 以下に lame と faad と faac が入っていないと動かない模様だったけれど 2005-11-09 にスタティックリンクで作り直したものが公開されてる。

話はそれて、2005-11-08版の ffmpeg-MobileHackerz を動かす方法を調べたので書いておく。
依存ライブラリは DarwinPorts でインストールする。

sudo /opt/local/bin/port install lame
sudo /opt/local/bin/port install faad2
sudo /opt/local/bin/port install faac

DarwinPorts は /usr/local 以下ではなく /opt/local 以下にインストールされるので、このままでは動かない。そこで、シェルに環境変数「DYLD_LIBRARY_PATH」もしくは「DYLD_FALLBACK_LIBRARY_PATH」をセットしてから実行する。

B Shell系:export DYLD_LIBRARY_PATH=/opt/local/lib
C Shell系:setenv DYLD_LIBRARY_PATH /opt/local/lib
もしくは
B Shell系:export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib
C Shell系:setenv DYLD_FALLBACK_LIBRARY_PATH /opt/local/lib

これを打ち込んだ後に目的のコマンドを実行すると /opt/local/lib 以下のライブラリがリンクされ実行できるようになる。「DYLD_LIBRARY_PATH」はここにライブラリがあったらデフォルトのパスよりも優先して使う、「DYLD_FALLBACK_LIBRARY_PATH」はデフォルトのパスにライブラリが見つからない場合ここを探して見つかれば使う、という意味。詳細は Manual Page For dyld(1) を参照のこと。
この方法は今回のケースに限らず汎用的に使えるので、覚えておいて損はない。

Trackback 現在、受付は中止しています

No Trackbacks

3 Comments

Re:

密かに興奮してます。反応くださってありがとうございます。
妄想の続きを話せば、MobileHackerz 氏が Mac 環境不慣れな故、
ヘチマさんのような方が合の手だして、なにか一つ形になれば
いいなぁー。と思ったんですよ。

From : hanapapa @ 2005-11-11 06:24:40 編集

ネ申ですね

とりあえず3GP_Converterのiniファイルを参考にコマンドラインでやってみたら
あっけなくPSPで再生できました。h264も。
すげー

From : ヘチマ @ 2005-11-12 02:02:22 編集

Re: ライブラリのリンクパスを変更して実行する方法

タグは使用出来ません。

From : Frank Johnson @ 2006-01-29 06:17:47 編集