You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cocos2d-x使用CMake编译安卓引入Box2D报ext_box2d重复错误如何解决

cocos2d-x 安卓CMake编译Box2D重复目标错误解决方案

错误根因

你手动调用add_subdirectory引入Box2D的操作与cocos2d内置的外部依赖导入逻辑冲突:cocos2d核心库的CMake配置已经预先声明了ext_box2d这个Box2D的导入目标,重复引入对应目录就会触发目标命名冲突。

修复步骤

  • 删除你手动添加的add_subdirectory(MyGame/cocos2d/external/Box2D ${PROJECT_BINARY_DIR}/box2d)这行配置
  • 保留add_definitions(-DCC_ENABLE_BOX2D_INTEGRATION=1)配置,该参数是开启cocos内置Box2D集成能力的必要开关
  • 修改target_link_libraries中的链接目标,将自定义的box2d替换为cocos内置声明的ext_box2d,最终有效配置如下:
add_definitions(-DCC_ENABLE_BOX2D_INTEGRATION=1)

target_link_libraries(${APP_NAME} 
                        cocos2d
                        ext_box2d
                        )

验证操作

修改完成后清空原有CMake构建缓存(安卓端可直接删除proj.android目录下的.cxx和build文件夹),重新执行编译即可,不会再触发重复目标报错,Box2D相关引入也会正常生效。

内容的提问来源于stack exchange,提问作者kiriko kagoyshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 14:57:00