Himi 原创, 欢迎转载,转载请在明显处注明! 谢谢。
原文地址:http://blog.csdn.net/xiaominghimi/article/details/6779452
大家都知道Xcode中支持C、C++、Object-C3种语言的混编,在上一节Box2d中介绍过cocos2d封装的box2d是c++源码实现的,那么如果想让编译器混编,只需要将实现类的".m"格式修改成".mm"即可,这样编译器即可编译允许c、c++、oc的代码;
但是混编代码,在编译最容易出现也是最多的错误如下:
- 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程序调用汇编子程序中参数传递和寄存器的使用规则,分析了二者连接过程中的问题,并给出了应用示 俐。
本文浅析了ARM汇编 C语言 C++ 相互调用的方法。
linux新手GDB入门,以c/c++为例,讲解GDB常用的操作。。。。。。
文中从主函数、类与结构、模板与宏三方面阐述了C/C++之间的联系,从编程思想、关键字和语法格式三方面论述了二者的区别,最后给出培养学生编程思路这一教学原则。
C语言 C++ 异同 浅析C语言与C_的异同
首先提问,阅读以下C语言程序段,并写出结果: 代码: printf("8 %% -3 = %d\r\n", 8 % -3); printf("-8 %% -3 = %d\r\n", -8 % -3); printf("-8 %% 3 = %d\r\n", -8 % 3); 如果你的回答是: a % b = 2 a % b = -2 ...
Visual C++中的异常处理浅析 Visual C++中的异常处理浅析
浅析单片机C语言(C51)与C语言的关系.pdf
C++语言extern C浅析
Android与iOS用户移动互联网使用行为浅析.pdf
浅析JAVA与C++的区别.pdf
在特大型煤矿高产高效的生产中,液压支架是非常关键的设备之一。...为解决该问题,对尾梁进行了改造并增加了厚贴板提高强度。改造后的一段时间内设备未再出现故障,节约了维修和更换的资金,具有一定的实践价值。
浅析C 与C语言的几点联系与区别
对于即将来临的3G时代,GSM网络...在GSM网络向WCDMA网络演进过程中,运营商会面临很长一段2G/3G网络混合共存时期,本文从3G网元的设置、2G网元的升级以及2G/3G网络互通等多个方面,浅析了GSM/WCDMA混合组网的相关策略。
浅析c.c++中的指针.doc..............
Broland C++ Builder 中的 Gdiplus(GDI+)浅析.
下面小编就为大家带来一篇浅析C/C++中动态链接库的创建和调用。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧
NAT地址转换浅析_席东.pdf
传统的基于C/S结构和单个项目进行开发的项目管理系统已经不能迅速地响应企业的业务需要,远远落后于当前经济的发展。 B/S架构的项目管理软件不需要暗转任何的软件,只要一台电脑,一条网线就可以实现。无论是内部...
在C++编程语言中,对于字符的处理,可以通过使用C++ strtok来进行具体的操作。那么正确的应用方法我们将会在这篇文章中为大家详细介绍,希望能对大家有所帮助,提高实际程序开发效率。