Cocos2d-x 2.0.3 Android Projectで Warningを減らす

Build時にWarningがいっぱいでると肝心なWarning見逃したりしちゃいそうなのでCocos2d-xで Androidの Native Codeを Compileするときの Warningを減らすためにやったこと。

対象になるProjectはLuaとCocosDenshionを有効にしただけの物です。

ARM EABIでva_listのmanglingが変更になった事に関する警告

この警告はあまり意味が無いので proj.android/jni/Application.mkに-Wno-psabiを追加して単純に出ないようにしました。

...
APP_CPPFLAGS = -frtti -Wno-psabi
...

quaternion.cおよびvec4.cで出るmemcpyの暗黙的定義と異なる事に対するWarning

memcpyがstring.hで定義されている事によるもの。

cocos2dx/kazmath/src/quaternion.c

cocos2dx/kazmath/src/vec4.c

の二つにstring.hのincludeを追加する。

...
#include <memory.h>
#include <string.h>
...

extended initializer lists only available with -std=c++11

構造体への代入において初期化リスト使った場合の警告かな。構造体の項目毎に分離すればOKなんで分離。

CocosDenshion/android/opensl/OpenSLEngine.cppのファイルの以下の1行を2行に分割

292行目: (player->audioSrc) = {&loc_fd, &format_mime};
↓
292行目: player->audioSrc.pLocator = &loc_fd;
293行目: player->audioSrc.pFormat  = &format_mime;

multi-character character constant

多分、これPortableなコードじゃない気がしたので書き換えてみましたが、、、。

C++11だとPortableなのかな?

extensions/CCBReader/CCBReader.cpp

281行目: if(CC_SWAP_INT32_LITTLE_TO_HOST(magicBytes) != 'ccbi') {
↓
if (CC_SWAP_INT32_LITTLE_TO_HOST(magicBytes) != CC_SWAP_INT32_LITTLE_TO_HOST(0x63636269) /* compare to 'ibcc' */) {

多分、これですっきりコンパイルできる、、、はず(^^;