iPod touch用にlibid3tagをビルド
iPod touch のシステムで動くid3タグのライブラリを求めて、
libid3tagをコンパイルしてみることにしました。
なぜ、libid3tagが必要なのかは...まあそういうことです。
1. ./configure
2. make
リンクのところで止まるはず
3.手動でリンク
これで、libid3tag.dylibが出来るので、Lyrics.appと同じフォルダへ入れて、
LDFLAGSに
を追加。
touchへコピー。
ただ、これで実行してみても Bus Error となるだけで上手くいきませんです。
うーん...どこがまずいのか。
そもそも共有?ライブラリってどこへ入れればいいんでしょうかね。
追記
moyashiさんのように新しいtoolchain(というかこっちを使用)でうまくいきました。
参考
http://moyashi.air-nifty.com/hitori/2007/10/ipod_touchipod__02ed.html
http://nirvash.sakura.ne.jp/blog/?p=295
libid3tagをコンパイルしてみることにしました。
なぜ、libid3tagが必要なのかは...まあそういうことです。
1. ./configure
$ cd libid3tag...
$ CC=arm-apple-darwin-cc CFLAGS="-v -Wl,-syslibroot,/usr/local/arm-apple-darwin/Heavenly" ./configure --host=arm-apple-darwin --prefix=/opt/iphone
2. make
リンクのところで止まるはず
3.手動でリンク
$ cd .libs
$ /Developer/SDKs/iPhone/bin/arm-apple-darwin-ld -o libid3tag.dylib -lc -lz -syslibroot /opt/local/arm-apple-darwin/heavenly -dylib *.o /usr/local/arm-apple-darwin/lib/dylib1.o -read_only_relocs suppress
これで、libid3tag.dylibが出来るので、Lyrics.appと同じフォルダへ入れて、
LDFLAGSに
-lz -lid3tag -L.
を追加。
touchへコピー。
ただ、これで実行してみても Bus Error となるだけで上手くいきませんです。
うーん...どこがまずいのか。
そもそも共有?ライブラリってどこへ入れればいいんでしょうかね。
追記
moyashiさんのように新しいtoolchain(というかこっちを使用)でうまくいきました。
参考
http://moyashi.air-nifty.com/hitori/2007/10/ipod_touchipod__02ed.html
http://nirvash.sakura.ne.jp/blog/?p=295
コメント
re:
>>nirvashさん
ご指摘ありがとうございます。
Staticはやってないですね、もしどうしてもダメならやってみたいと思います。
>>moyashiさん
普通にできましたか...
こっちの環境の問題アリですね。
参考にしてみます。
ちょっと時間が無いので、いろいろといじったり、解説したり出来ませんが、またやってみます。
ご指摘ありがとうございます。
Staticはやってないですね、もしどうしてもダメならやってみたいと思います。
>>moyashiさん
普通にできましたか...
こっちの環境の問題アリですね。
参考にしてみます。
ちょっと時間が無いので、いろいろといじったり、解説したり出来ませんが、またやってみます。
よくわかりませんが
Dynamic Link 周りがあやしいということなら、とりあえず Static Link してしまうってのはどうでしょうか。
あと printf デバッグして落ちる場所を特定してみるとか。
私は std::iostream で << してファイルに出力しようとして死んでいたのを見つけたことががあります。
あと printf デバッグして落ちる場所を特定してみるとか。
私は std::iostream で << してファイルに出力しようとして死んでいたのを見つけたことががあります。
re:
どうもです。
>>otool
これもやってみたんですが問題ないように見えます。
libid3tag.dylib:
libid3tag.dylib (compatibility version 0.0.0, current version 0.0.0)
...
Lyrics:
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)
...
libid3tag.dylib (compatibility version 0.0.0, current version 0.0.0)
ライブラリはフルパスで設定してやる必要があるんですかね。
これだと実行ファイルと同じフォルダに置けばいいような雰囲気ですが。
そもそも、リンクがうまくいってないのかもしれないです。
>>Lyrics3
んー、なんか初めて聞いたんですが...^^;
ちょっと調べてみます。
歌詞についてはMac上ではid3tagを使って取得することができましたよ。
あとはこれをtouchに載せるだけですが。
>>otool
これもやってみたんですが問題ないように見えます。
libid3tag.dylib:
libid3tag.dylib (compatibility version 0.0.0, current version 0.0.0)
...
Lyrics:
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)
...
libid3tag.dylib (compatibility version 0.0.0, current version 0.0.0)
ライブラリはフルパスで設定してやる必要があるんですかね。
これだと実行ファイルと同じフォルダに置けばいいような雰囲気ですが。
そもそも、リンクがうまくいってないのかもしれないです。
>>Lyrics3
んー、なんか初めて聞いたんですが...^^;
ちょっと調べてみます。
歌詞についてはMac上ではid3tagを使って取得することができましたよ。
あとはこれをtouchに載せるだけですが。
おんなじことやってますね。
MLTrackや現存するCocoa用のid3tagライブラリはlyric3に対応してないんですよね。
共有ライブラリは「--prefix=」を付けなければ/usr/libだと思いますが、「--prefix=」を付けてコンパイルすると、そのディレクトリ以下のlibになると思います。普通のconfigureだと。だからこの場合は「/opt/iphone/lib」だと思いますが。
otool -L ./id3tag
などとすると、依存ライブラリを、期待される設置パス含めて確認できます。
一つ気になることが。iTunesで埋め込んだ歌詞はLyric3でない可能性があるのです。
iTunesで歌詞を埋め込み、そのMP3をバイナリエディタで見てみたんですが、Lyrics3のマーカが無いようでした。……という辺りで別のことを始めてしまったので、そこから先は中座してますが。
http://hp.vector.co.jp/authors/VA023256/lry3v200.html
Lyrics3に対応したID3EDSがダウンロードできなくなっているので、他にいいタグエディタがあるかな?
MLTrackや現存するCocoa用のid3tagライブラリはlyric3に対応してないんですよね。
共有ライブラリは「--prefix=」を付けなければ/usr/libだと思いますが、「--prefix=」を付けてコンパイルすると、そのディレクトリ以下のlibになると思います。普通のconfigureだと。だからこの場合は「/opt/iphone/lib」だと思いますが。
otool -L ./id3tag
などとすると、依存ライブラリを、期待される設置パス含めて確認できます。
一つ気になることが。iTunesで埋め込んだ歌詞はLyric3でない可能性があるのです。
iTunesで歌詞を埋め込み、そのMP3をバイナリエディタで見てみたんですが、Lyrics3のマーカが無いようでした。……という辺りで別のことを始めてしまったので、そこから先は中座してますが。
http://hp.vector.co.jp/authors/VA023256/lry3v200.html
Lyrics3に対応したID3EDSがダウンロードできなくなっているので、他にいいタグエディタがあるかな?
コメントの投稿
トラックバック
http://novi.10.dtiblog.com/tb.php/183-d7f6b890


moyashiさん,noviさんがんがってください