`
xiaominghimi
  • 浏览: 51875 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

【Cocos2d游戏开发之十二】浅析使用C++/C/OC进行iOS游戏混编出现“failed with exit”问题与小结;

 
阅读更多


Himi 原创, 欢迎转载,转载请在明显处注明! 谢谢。

原文地址:http://blog.csdn.net/xiaominghimi/article/details/6779452


大家都知道Xcode中支持C、C++、Object-C3种语言的混编,在上一节Box2d中介绍过cocos2d封装的box2d是c++源码实现的,那么如果想让编译器混编,只需要将实现类的".m"格式修改成".mm"即可,这样编译器即可编译允许c、c++、oc的代码;

但是混编代码,在编译最容易出现也是最多的错误如下:

部分分析总结如下:

<wbr><wbr>1. (全局变量)static方法名重复-因为C语言里没有对象的概念,它的方法只要加入相应的.h文件就可以使用,所以,如果和C++ or Objective-C的静态方法重名了,那么环境无法区分,很明显,这个错误是编译时候的错误,而对于static的变量及方法是在编译的时候便被加入的,所以无法识别.</wbr></wbr>

<wbr><wbr>2. (命名空间)全局变量名重复,理由和上面是一样的,当然,如果是全局变量,建议在Objective-C的.m文件(当然现在被改成.mm了)中声名,不然,声明在.h中单独使用是没有问题的,如果直接引用了C or C++的.h,那么即使这时候全局变量不重复,也会出现上面的问题.</wbr></wbr>

<wbr><wbr>3. (主函数)含有多个main方法,main方法是程序的入口,如果有多个文件含有main方法,那么也会出现上面的问题.</wbr></wbr>

<wbr><wbr> 其实对于“failed with exit”的问题,总的来说,这个问题就是因为方法或是全局变量重复所导致的编译环境无法识别并编译 !所以童鞋们使用混编程序的时候要特别注意,最好的解决办法就是,如果你的项目后期有1/100000 的几率会使用混编进行(例如加入box2d开发包),那么就应该从项目一开始就将实现类修改成".mm"格式进行编译代码,防止后期复杂的各种混编问题;</wbr></wbr>

OK,这篇小结就到这里;



分享到:
评论

相关推荐

    iOS cocos2d游戏开发教程

    ### iOS Cocos2d游戏开发教程:从入门到精通 #### 引言 在苹果的iTunes App Store以及伴随而来的移动设备(如iPhone、iPod touch和iPad)的推动下,开发并销售自己的计算机游戏变得前所未有的容易。尽管这并不意味...

    cocos2d游戏开发之旅

    《cocos2d游戏开发之旅》是一本专为游戏开发初学者设计的教程,它深入浅出地介绍了使用cocos2d框架进行移动游戏开发的基本概念和技术。cocos2d是一个广泛使用的开源游戏引擎,特别适合开发2D游戏,其易用性、灵活性...

    ios游戏开发之cocos2d-oc笔记

    在iOS游戏开发领域,Cocos2d-Objective-C(简称cocos2d-oc)是一个广泛应用的开源框架,它使得创建2D游戏、演示和其他图形交互应用变得简单易行。本笔记将深入探讨cocos2d-oc的核心概念、关键特性和实际应用,帮助...

    Cocos2d游戏开发实战全本

    Cocos2d游戏开发是一个专注于2D游戏开发的开源框架,它支持多种操作系统和编程语言,广泛应用于iOS、Android、Windows等平台的游戏开发。Cocos2d允许开发者快速构建游戏应用,其丰富的功能和灵活的设计让游戏开发变...

    cocos2d游戏开发

    Cocos2d是一款广泛用于创建2D游戏、交互式应用和视觉效果的开源框架,尤其在iOS和Mac OS X平台上非常流行。它基于Objective-C语言,同时也提供了Swift接口。本教程涵盖从基础到进阶的cocos2d游戏开发全过程,共13...

    iOS 5 cocos2d 游戏开发实战(第2版)

    《iOS 5 cocos2d 游戏开发实战(第2版)》这本书是一本关于在iOS5平台使用cocos2d游戏引擎开发游戏的实战教程书籍。cocos2d是一个开源的游戏开发框架,它为开发者提供了一套丰富的API,用以创建2D游戏、演示程序和其他...

    Cocos2d游戏开发教程(iOS5)

    这个“Cocos2d游戏开发教程(iOS5)”涵盖了在iOS平台上使用Cocos2d进行游戏开发的全面知识,对于想要踏入游戏开发领域的开发者来说是一份宝贵的资源。 在iOS5的时代,Cocos2d-iOS是Cocos2d的一个分支,它为开发者...

    【iOS-Cocos2d游戏开发之二十二 】源码下载

    【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现CCAnimate动画进行时设置慢动作以及设置游戏加减速进行(塔防游戏必备)! http://blog.csdn.net/xiaominghimi/article/details/7009503

    cocos2d游戏开发基础(一).pdf

    ### cocos2d游戏开发基础知识点概述 #### 一、cocos2d简介 cocos2d是一款专为iOS和跨平台游戏开发设计的开源框架。它不仅能够支持2D游戏的构建,还提供了丰富的功能来简化游戏开发过程。cocos2d的核心优势在于其...

    12-IOS游戏开发Cocos2d.pdf

    Cocos2d是一个广泛使用的开源框架,主要用于构建2D游戏、演示程序和图形界面交互应用。在iOS开发中,Cocos2d-iPhone是一个极具价值的库,它提供了丰富的功能,如精灵管理、图形特效、动画效果、物理引擎和音频处理等...

    cocos2d游戏开发电子书超清

    《cocos2d游戏开发电子书超清》是一本针对初学者的游戏开发指南,专注于cocos2d框架的使用。cocos2d是一款强大的、开源的2D游戏引擎,广泛应用于iPhone游戏开发以及移动平台的其他应用开发。本书旨在帮助读者快速...

    Cocos2d-x与Android交互(c++与java互调),与IOS交互(c++与objective c混编)

    Cocos2d-x与Android交互(c++与java互调),与IOS交互(c++与objective c混编) 具体的代码请下载这个文件,里面有更详细的jni使用方法,包括传递基本数据类型,返回基本数据类型的值,及类型的转换。

    IOS 5 cocos2d游戏开发实战

    《iOS 5 cocos2d游戏开发实战》这本书深入探讨了在iOS 5平台上利用Cocos2d框架进行2D游戏开发的技术与实践。Cocos2d是一款强大的、开源的、跨平台的游戏开发库,尤其适合于创建具有复杂动画效果和交互性的2D游戏。 ...

    cocos2d-x手机游戏开发(跨android/ios/wp7/wp8/windows 8平台)

    cocos2d-x手机游戏开发(跨android/ios/wp7/wp8/windows 8平台) 游戏课程特点: ---------------------------------------------------------- 1、国内首创跨平台游戏开发 2、深度讲解Cocos2D-X并运用于实战 3、...

    cocos2d游戏开发入门

    Cocos2D-iPhone是iOS平台上一款广受欢迎的2D游戏开发框架,它以其高效、易用和功能丰富而受到开发者们的青睐。本教程将带你踏入Cocos2D游戏开发的大门,通过学习,你将掌握如何利用这个强大的工具创建令人惊叹的2D...

    IOS游戏开发入门源码 Climbers 基于Cocos2D引擎的2D游戏

    综上所述,通过《Climbers》这款2D游戏,我们可以学习到Cocos2D引擎的基本使用、游戏逻辑设计、用户输入处理、物理模拟、音频管理和iOS应用发布的整个流程。这些都是iOS游戏开发中不可或缺的知识点,对于初学者来说...

    Cocos2d-x学习笔记——完全掌握C++ API与游戏项目开发.zip

    6. 测试与调试:在不同平台上运行和测试游戏,确保兼容性和性能,使用Cocos2d-x的调试工具进行问题排查。 7. 发布与打包:将游戏打包成各个平台的可执行文件,发布到应用商店或自定义渠道。 四、高级特性 1. Box2D...

    用Cocos2d-x引擎c++语言开发的小游戏 (初学者 , 大学课程设计).zip

    用Cocos2d-x引擎c++语言开发的小游戏 (初学者 , 大学课程设计).zip 用Cocos2d-x引擎c++语言开发的小游戏 (初学者 , 大学课程设计).zip 适合学习/练手、毕业设计、课程设计、期末/期中/大作业、工程实训、相关项目/...

    cocos2dx 2.x 开发 示例游戏合集_C++_代码_下载

    cocos2dx 2.x 开发示例游戏合集 效果展示: https://github.com/pdpdds/cocos2dx-dev/blob/master/img/snap0215.jpg https://github.com/pdpdds/cocos2dx-dev/blob/master/img/snap0216.jpg ...

Global site tag (gtag.js) - Google Analytics