2012/10/14

問題紀錄:NDK r8b, cocos2d-x 2.0.3


最近進行更換引擎為cocos2d-x 2.0.3的動作
NDK編譯時遇到了幾個問題記錄一下

1.  編譯時出錯  出現unresolvable R_ARM_THM_CALL relocation against symbol  xxx 的訊息
原因似乎是出在r8b的預設toolchain為GCC 4.6 toolchain
然後這個toolchain好像有問題= =
相關討論

解決方法有兩種
如果你是Mac or Linux  可以用Gold linker (這個我是第一次聽到)
在android.mk中加LOCAL_C_FLAGS += -fuse-ld=gold  
像我用windows的話可以指定用舊的toolchain
在application.mk中加NDK_TOOLCHAIN_VERSION = 4.4.3

2.  第二點是在我用4.4.3 toolchain後出現的狀況
no matches converting function xxx to type xxxx
在cocs2d-x中使用CCCallfunc 時 callfunc_selector(Class::Method)
當Method有其他的overload方法時就會出現
最後因為我不想改cocos2d-x的source code所以我選擇改呼叫方法的名稱
      

2 則留言 :

匿名 提到...

請問一定要用 NDK r8b 編譯嗎?

Unknown 提到...

2.0.3應該r8也ok的