N.Yamazaki's blog

主に音声合成について思ったことを書いてみようと思います。
<< AquesTalk2 Android を使ってみる | main | おかしな声の音声合成エンジン AquesTalk-FX リリース >>
ビルド時のリンクエラー AquesTalk2 iPhone

iPhone (iOS) SDKを3.1から4.1に変更したところ、
AquesTalk2のサンプルアプリ HelloAqTkをビルド(リンク)する時に、下記のエラーが出てビルド出来無くなった。

.objc_class_name_NSNotificationCenter", referenced from:
literal-pointer@__OBJC@__cls_refs@NSNotificationCenter in libAquesTalk2.a(PlaySoundA.o)
ld: symbol(s) not found


ちなみに、このエラーが出るのは Simulatorの場合であり、Device(実機)のビルドでは生じないし、Deviceでは実行もできる。

取り急ぎ、本エラーに対応したライブラリをリリースしたので、このエラーが発生した場合は、次のライブラリに差し替えて、ビルドしていただきたい。

libaqtk2_iph_100916.zip 
(libAquesTalk2.a i386/armv6/armv7 ユニバーサルバイナリ) 配布終了しました

[戯言]
あれこれ調べてみたのだが、エラーの原因は不明。コンパイラのバージョンにより挙動が変わるのは確かなようだ。素直にライブラリをGCC4.2で構築すればこの問題は発生しないのだが、今度はGCC4.2の最適化のバグ(?)で、実行時に動かなくなる。
ちなみに、今回はライブラリ生成のコンパイラに、LLVM GCC 4.2を使うことで対応した。
今後のAppleのSDKのバージョンアップで、不具合が解消されることを期待したいが、GCC4.0との混在なんて気にかけてもらえないだろうな・・・

| AquesTalk | 15:48 | - | - |
PROFILE
Follow
CATEGORIES
LATEST ENTRIES
SEARCH THIS SITE
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
SONY MDR-CD900ST
SONY MDR-CD900ST (JUGEMレビュー »)

普段これで開発しています。
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND