cocos2d-xと Android NDKの罠

作成中のプログラムがAndroidだけ変なエラーで落ちる。Windowsでは平気なのに。
ふたを あけてみればくだらない話なんだけど、まさかこんな罠があるとは、、、(^^;

エンディアンの違いじゃない?って思った人がいるかと思いますが、違います。

答えは charの符号。unsignedなんですねー。

ARMの ABIで はっきり定義されてました。http://infocenter.arm.com/help/topic/com.arm.doc.dui0348bj/DUI0348BJ_rvct_comp_ref_guide.pdf
コンパイルオプションに-fsigned-charをつければ済む話ではあるんですが、
問題はフレームワーク側(cocos2d-x)が、それで確認とられてるかどうか分からない点。

もっともchar依存したコードなんて一箇所しかなかったのでそこを直して話は終わりなんですが、
iOSのcharの符号が気になるので今度調べてみよう。。

charの符号の違いってコンパイラが違うときには若干気にするんですけど、
gccだからという理由で気にしてませんでした、、、。

Leave a Reply

Your email address will not be published. Required fields are marked *