上一章: Cocos2d-x项目创建之 静态库生成
第一步,“Cocos2d-X源码”和“预编译静态库”准备
Cocos2d-X源码可在官网下载,如:
Cocos2d-X预编译静态库生成方法:Cocos2d-x项目创建之 静态库生成
第二步,原生iOS项目导入“Cocos2d-X源码”和“预编译静态库”
1.预编译静态库导入:(本方法只导入“模拟器Debug”环境的静态库,其他环境静态库导入方法雷同!)
如图:
2.Cocos2d-X源码包导入,Cocos2d-X源码包粘贴复制放在MyFirst项目 的一级目录中:(Cocos2d-X源码包,用于cocos项目开发过程中使用,相当于将官方API集成在工程本地文件中。用于开发过程中,代码API调用!)
如图:
3.Cocos2d-X源码包引用:(Cocos2d-X源码包,用于cocos项目开发过程中使用,相当于将官方API集成在工程本地文件中。用于开发过程中,代码API调用!)
(1)、[project] -- [Build Setting] -- [Header Search Paths]:
$(SRCROOT)/cocos2d-x-3.10
$(SRCROOT)/cocos2d-x-3.10/cocos
$(SRCROOT)/cocos2d-x-3.10/cocos/base
$(SRCROOT)/cocos2d-x-3.10/cocos/physics
$(SRCROOT)/cocos2d-x-3.10/cocos/math
$(SRCROOT)/cocos2d-x-3.10/cocos/2d
$(SRCROOT)/cocos2d-x-3.10/cocos/ui
$(SRCROOT)/cocos2d-x-3.10/cocos/network
$(SRCROOT)/cocos2d-x-3.10/cocos/audio/include
$(SRCROOT)/cocos2d-x-3.10/cocos/editor-support
$(SRCROOT)/cocos2d-x-3.10/extensions
$(SRCROOT)/cocos2d-x-3.10/external
$(SRCROOT)/cocos2d-x-3.10/external/chipmunk/include/chipmunk
(2)、[targets] -- [Build Setting] -- [Header Search Paths]:
$(inherited)
$(SRCROOT)/cocos2d-x-3.10/cocos/platform/sos
$(SRCROOT)/cocos2d-x-3.10/cocos/platform/ios/Simulation
(3)、[targets] -- [Build Setting] -- [Library Search Paths]:
$(SRCROOT)/cocos2d-x-3.10/prebuilt/ios
$(PROJECT_DIR)
第三步,配置Cocos2d-X开发所需框架,如图:
第四步,Cocos2d-X工程环境配置
1.Build Settings中配置,设置Valid Architectures ,设置处理器编译环境
如图:
2.Build Options ->Enable Bitcode 设置为NO
3.设置Other Linker Flages
$(_COCOS_LIB_IOS_BEGIN)
$(_COCOS_LIB_IOS_END)
-ObjC
如图:
4.设置Other C flages
-DNS_BLOCK_ASSERTIONS=1
如图:
5.设置 C Language Dialect 为 Compiler Default,如图:
6.设置PreProcessor Macros
Debug:
USE_FILE32API
CC_TARGET_OS_IPHONE
COCOS2D_DEBUG=1
CC_ENABLE_CHIPMUNK_INTEGRATION=1
如图:
Release:
USE_FILE32API
CC_TARGET_OS_IPHONE
CC_ENABLE_CHIPMUNK_INTEGRATION=1
如图:
7.设置Apple LLVM [7/8/9/10……] - Warnings - All languages,如图:
第五步,将原有的Cocos2d-X工程文件导入新搭建的ios原生项目中,分别对照“原有的Cocos2d-X工程”修改iOS原生项目,如图:
运行项目,大搞成功!!!
注意:如果运行失败,可能是iOS支持框架添加有误,也可能是工程配置文件配置有误!!!
项目报错:
1.类似std::basic_string/std::string::find………………
解决方案:可能是因为导入的框架不合理或者方法不对,也可能是导入的框架类型或者版本不对,因此不支持C++编译环境,检查导入iOS支持的框架。或者删除重新导入支持库。
如果,仍然报错,就导入libstdc++.dylib或者libstdc++.6.0.9.dylib即可
2.类似"_deflateReset",referenced from:………………… "*******",referenced from:………………
可能是因为导入的框架不合理或者方法不对,也可能是导入的框架类型或者版本不对,因此不支持C++编译环境,检查导入iOS支持的框架。或者删除重新导入支持库。