Ane作成でUndefined symbolsとなり、はまった話
iOS用のAneを作成してAirアプリとしてエクスポートしようとしたら、、
Undefined symbols:"_ExtFinalizer", referenced from:
_g_com_adobe_air_fre_fmap in extensionglue.o
"_ExtInitializer", referenced from:
_g_com_adobe_air_fre_fmap in extensionglue.o
ld: symbol(s) not found
こんな表示。platform.xmlのlinkerOptionにフレームワークを追加し忘れたときに出るエラーのようでいて違う。
フレームワークを追加忘れの時はこちら参照→itoz on scriptogr.am
結論としては、*.a の ExtInitializer、ExtFinalizer をObjective-c++でコンパイルしていた
のが原因。
ソースファイルを *.mm にしてたらそうなっちゃった、ということだったのでObjective-cでコンパイルするように変更してあげる。
インスペクタから
Type Objective-c++ Source → Type Objective-c Source
と変更すると、シンボルが書き出されるようになり、Airのビルドも通った。
CとC++のシンボルの違いね。。しばらくその辺やってないから忘れてたよ。。