`
tank2308635
  • 浏览: 191688 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转)浅析使用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的代码;

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

  1. Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 failed with exit  

 

 

部分分析总结如下:

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

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

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

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

       OK,这篇小结就到这里;

分享到:
评论

相关推荐

    浅析C++与C语言的几点联系与区别.pdf

    ### 浅析C++与C语言的几点联系与区别 #### 一、引言 随着计算机科学的发展,C语言和C++语言成为了编程领域中极为重要的两种编程语言。C语言以其简洁高效的特点,在系统编程、嵌入式开发等领域占据着不可动摇的地位...

    C语言与汇编语言混合编程浅析

    ### C语言与汇编语言混合编程浅析 #### 摘要 本文旨在探讨C语言与汇编语言混合编程的基本原理和技术要点。首先,我们详细介绍了C程序调用汇编子程序时参数传递和寄存器使用的规则。其次,文章分析了这两种语言在...

    浅析ARM汇编 C语言 C++ 相互调用的方法

    ### 浅析ARM汇编 C语言 C++ 相互调用的方法 #### 一、引言 在嵌入式开发领域,ARM架构因其低功耗、高性能的特点被广泛应用。随着软件开发需求的多样化,不同编程语言间的交互成为了一个重要的技术问题。其中,ARM...

    linux c/c++ gdb浅析

    GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。对于习惯了图形界面方式的开发者,如...对于Linux新手而言,通过C/C++语言的程序作为示例,使用GDB进行调试操作,可以更好地理解程序的运行机制和调试过程。

    浅析C/C++对整数除以常量的处理

    ### 浅析C/C++对整数除以常量的处理 #### 一、除法相关的数学定义和性质 在探讨C/C++中如何处理整数除法之前,我们需要了解一些基本的数学定义和性质。 **定义1:** 除法是一种基本的算术运算,用来找出一个数...

    C++语言extern C浅析.zip

    而C语言不进行这种名称修饰,因此,当C++代码需要与C库交互或者编写可移植的头文件时,就需要使用`extern "C"`来避免名称冲突。 `extern "C"`的使用主要有以下两种情况: 1. **链接C库**:如果你在C++程序中调用...

    浅析Java、C/C++、JavaScript、PHP、Python分别用来开发什么?

    Python也常用于开发原型和最终产品,因为它可以快速实现功能并可以通过C/C++等语言对性能敏感的部分进行优化。 总的来说,每种编程语言都有其特点和适用场景。在选择使用哪种编程语言时,需要根据项目需求、开发...

    浅析C语言与C_的异同

    ### 浅析C语言与C++的异同 #### 概述 本文旨在探讨C语言与C++语言之间的异同之处。尽管这两种语言都源于同一基础,并且在很多方面保持着相似性,但随着时间的发展和技术的进步,C++逐渐形成了自己独特的特性和编程...

    浅析C 与C语言的几点联系与区别.doc

    《C++与C语言的联系与区别》 C++与C语言,两者虽有深厚的渊源,但在编程理念和具体实现上存在着显著的区别。本文主要从三个方面探讨它们的联系和差异:主函数、类与结构、以及模板与宏。 首先,C++与C语言在主函数...

    Visual C++中的异常处理浅析

    【Visual C++中的异常处理浅析】 Visual C++作为一个强大的开发环境,不仅支持C和C++语言,还包含了Microsoft Foundation Class (MFC)库。因此,它的异常处理机制覆盖了C、C++以及MFC三种不同层次。微软还对C和C++...

    王桂林老师 c++基础与提高

    首先,王老师对C++的历史背景进行了介绍,讲解了这门语言的出现背景和它为何能够应运而生,同时梳理了C++的发展大记事。接下来,他探讨了C++的应用领域,包括系统层软件开发、服务器程序开发、游戏、网络、分布式...

    浅析c.c++中的指针.doc

    《浅析C/C++中的指针》 C/C++中的指针是编程语言的一大特性,也是其强大之处,本文将对指针的概念、应用及注意事项进行深入探讨。 首先,我们需要理解指针的基本概念。指针是一个变量,它存储的是另一个变量的地址...

    浅析单片机C语言(C51)与C语言的关系.pdf

    C语言是一种广泛使用的高级编程语言,最初由美国国家标准学会制定了标准版本,即ANSIC。C语言拥有结构化编程的特点,支持丰富的数据类型,如整型(int)、长整型(long)、浮点型(float)、字符型(char)等,并且具有良好...

    c/vc++/MFC异常处理/结构化异常处理 浅析

    本篇文章将深入浅析C、C++中的异常处理机制以及MFC中的异常处理策略。 首先,我们来看C语言的异常处理。C语言本身并不直接支持异常处理,但可以通过返回错误码或者设置全局变量的方式进行错误处理。这种方式称为...

    浅析JAVA与C++的区别.pdf

    "浅析JAVA与C++的区别" Java和C++是两种最流行的程序设计语言,它们之间有很多的相似之处,但同时也存在很多的区别。下面我们将从技术角度对这两种语言的区别进行分析。 一、继承 C++支持类的多继承,而Java采用...

    浅析C++类的底层实现

    《C++类的底层实现——深入解析封装性》 C++作为一门强大的面向对象编程语言,其类的底层实现机制是理解和掌握C++的关键。在本文中,我们将深入探讨C++类的封装性,以及其背后的构造函数、静态变量、虚函数等核心...

    C++单精度与双精度浅析.pdf

    ### C++单精度与双精度浅析 #### 一、引言 在C++编程语言中,浮点类型的处理是一项非常重要的技术。特别是在涉及到数学计算、科学计算以及工程应用等领域时,选择合适的浮点类型至关重要。本文将深入探讨C++中的单...

    Android与iOS用户移动互联网使用行为浅析.pdf

    Android与iOS用户移动互联网使用行为浅析.pdf

    浅析C 与C语言的几点联系与区别.pdf

    本文通过对C语言和C++的主要联系与区别进行分析,帮助读者更加清晰地理解这两种编程语言的各自特点,并提供给编程教育工作者一定的教学原则指导。 C++语言是在C语言的基础上发展起来的,因此,它们之间有着不可分割...

Global site tag (gtag.js) - Google Analytics