novi's Blog

Mac、iPod、オーディオなどの覚え書き

iPod touch用にlibid3tagをビルド

iPod touch のシステムで動くid3タグのライブラリを求めて、
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

コメント

おお,ついにタグから情報を!
moyashiさん,noviさんがんがってください

re:

>>nirvashさん
ご指摘ありがとうございます。
Staticはやってないですね、もしどうしてもダメならやってみたいと思います。

>>moyashiさん
普通にできましたか...
こっちの環境の問題アリですね。
参考にしてみます。

ちょっと時間が無いので、いろいろといじったり、解説したり出来ませんが、またやってみます。

http://moyashi.air-nifty.com/hitori/2007/12/ipod_touchipod__5aa4.html

もうレスが付いているような気がしますが、一応。

よくわかりませんが

Dynamic Link 周りがあやしいということなら、とりあえず Static Link してしまうってのはどうでしょうか。

あと 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に載せるだけですが。

おんなじことやってますね。

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

 | HOME | 

プロフィール


novi


Author:novi
学生。♂。
飽きやすいのでネタがころころ変わります。最近は iPhone の hack と工作。










月別アーカイブ


検索フォーム


今日の献立


DTIミニモブログ


DTIブログ
ブログでアフィリエイト


DTIブログポータルへ

このブログを通報

カレンダー

08 | 2008/09 | 10
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 - - - -

Twitter


follow novi_ at http://twitter.com


カテゴリー


最近のエントリー


最近のコメント


最近のトラックバック


なかのひと


ジオターゲティング


ジオターゲティング


リンク


RSSリンク


PoweredBy

Powered By DTIブログ