Cocos2d-x-3.11生成预编译库编译安卓报错的解决办法

使用命令“cocos gen-libs”生成预编译库报错信息如下:

cocos2d-x-3.11/tools/simulator/frameworks/runtime-src/proj.android/../../../../..//tools/simulator/libsimulator/proj.android/../lib/ProjectConfig/ProjectConfig.cpp:24: error: relocation overflow in R_ARM_THM_CALL
cocos2d-x-3.11/tools/simulator/frameworks/runtime-src/proj.android/../../../../..//tools/simulator/libsimulator/proj.android/../lib/ProjectConfig/ProjectConfig.cpp:26: error: relocation overflow in R_ARM_THM_CALL
collect2: error: ld returned 1 exit status
make: *** [obj/local/armeabi/libcocos2dlua.so] Error 1
make: Leaving directory `/Applications/Cocos/Cocos2d-x/cocos2d-x-3.11/tools/simulator/frameworks/runtime-src/proj.android'
Error running command, return code: 2.
Error running command, return code: 14.

NDK在Android 编译过程中,部分使用 thumb 模式,部分使用 arm 模式,应该是由于 thumb 模式是 16 位,链接地址不足导致的relocation overflow in R_ARM_THM_CALL错误,从log信息发现在编译cocos2d-x-3.11\tools\simulator\libsimulator\lib\ProjectConfig\ProjectConfig.cpp时报错,源头锁定。


1. 找到cocos2d-x-3.11\tools\simulator\libsimulator\proj.android\Android.mk文件,添加下面这句,使用arm模式编译
ifeq ($(COCOS_SIMULATOR_BUILD),1)
LOCAL_ARM_MODE := arm
endif

cocos2d-x-3.11\tools\simulator\frameworks\runtime-src\proj.android\jni\Application.mk中已经定义了COCOS_SIMULATOR_BUILD := 1,所以上面LOCAL_ARM_MODE:=arm会被执行。修改后保存文件,再生成预编译库就不会报错了。

2.生成framework项目模板
cocos2d-x-3.11\templates下是没有framework项目模板的,需要执行“cocos gen-templates”,自动生成项目模板。
3.创建framework项目
cocos new PrejectName -p xxx -t binary -l cpp -d NEW_PROJECTS_DIR
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值