- 浏览: 622954 次
文章分类
最新评论
-
q781253433:
qin ~.求demo看看~
Android之Widget -
zhongyuanceshi:
博主,没看到你的例子的Demo,共享下
Android之Widget
XCode编译器介绍 :
http://www.cnblogs.com/ydhliphonedev/archive/2012/08/29/2661726.html
原文:http://blog.csdn.net/wangyuchun_799/article/details/7729222
当使用Xcode编写C++代码时,难以避免要使用xcode/C++混合编译。
如果你在Xcode中编写的工程中既有Objective-C代码,又有C++代码,在没有任何设置编译器选项的默认情况下,你将会发现一下问题:
(1)编译器报错。莫名其妙的错误,如C++的关键字(如virtual, new, delete等)找不到,不能解析啊等问题
(2)以*.cpp结尾的纯C++代码编译没有问题,但是既有Objective-c又有C++的文件(*.mm)文件就会报各种问题
在Xcode中,通常,Objective-c的后缀名位 .h/.m,C语言的后缀名为 .h/.c, C++的后缀名为.h/.cpp, 当一个文件中既有objective-c又有C++代码时,后缀名为 .h/.mm。在编写代码时要写对后缀名。其次,你可能发现,后缀名都写对了,代码也没有任何问题,编辑器也没有报错,为什么编译的时候就报错了呢?事实上,编译器和编辑器的工作是区分开来的,编辑器就是你写代码的地方,仅检查代码语法是否有错误,你语法没有错误当然不会报错了。编译器就是要编译运行在编辑器中编写好的代码,如果编辑器仅支持Objective-C,它怎么可能编译的了C++代码呢?
要让编译器知道代码中有C++代码,要对编译器做一些设置,先看图:
1.单击你的工程,选择TARGET下的目标文件
2.在选项卡中选择“Build Settings”选项
3.找到“Apple LLVM compiler x.x - Language”设置项(其中x.x为你的xcode默认的LLVM编译器版本,不同的xcode版本不一样)
4.图中绿色选中的选项“Compile Sources As”,意思是要把工程按照哪一种语言进行编译,默认是第一个“According to File Type”,将其改成Objective-C++即可。
现在重新编译一下你的工程是不是就可以成功编译了呢。
发表评论
-
tableview FPS 优化
2016-06-28 11:26 1现状: 在滚动tableview ... -
iOS 开发者中的公司账号与个人账号之间有什么区别?
2016-06-23 14:54 497原文:http://www.zhihu.com/questio ... -
strong weak copy
2016-04-24 21:01 628copy的使用 如果是mutable,则co ... -
App性能优化思考
2015-10-13 15:24 906一个app的数据 启动时间 crash率 每个 ... -
iOS之手势操作
2015-01-19 10:24 778手势学习: https://developer. ... -
iOS之网络学习
2015-01-19 10:23 640网络学习: http://nshipster.c ... -
nib文件的加载过程
2014-10-24 13:39 776参考:http://blog.csdn.net/nokiax ... -
NSCoder&&NSCoding使用
2014-10-24 11:38 755NScoder和NScoding的作用是将自定义的类的对象持 ... -
Autolayout学习
2014-10-20 16:32 742参考: http://my.oschina. ... -
IOS开发屏幕适配总结
2014-10-20 16:28 444面对4个分辨率的iPhone,建议使用Auto Layou ... -
Size Classes学习
2014-10-20 16:27 762Size Classes介绍:http://blog.su ... -
iPhone6分辨率以及适配
2014-10-20 11:36 1305对iPhone6适配的两种方式:1、兼容模式 这种模式 ... -
Core Animation简介
2014-10-19 15:33 776在iOS中,整个view都是直接构建在Core Animat ... -
Charles使用——HTTP代理服务器
2014-10-19 15:32 2050* HTTP代理服务器,监听8888端口 * HTTP监视 ... -
《精选》开发中遇到的问题总结
2014-10-19 15:31 10071、新浪微博的使用 使用的事umeng的SDK来调用微信、 ... -
使用JavaScript给UIWebView中的内容注入CSS
2014-10-06 21:26 1154NSString *filePath = [[NSB ... -
UIViewde的属性edgesForExtendedLayout
2014-09-26 17:56 692edgesForExtendedLayout 指定边缘 ... -
UIView的属性autoresizingMask
2014-09-26 17:36 762在 UIView 中有一个autoresizingMask ... -
UIWebView获取内容的高度
2014-09-24 13:13 740// 第一种方法 ... -
storyboard的总结
2014-09-02 11:30 730两个基本概念 scene 就是一个视图控制器 se ...
相关推荐
在Objective-C中使用C++是iOS和Mac开发中常见的技术结合,因为Objective-C是Apple的主推编程语言,而C++则是一种强大的、通用的面向对象的语言,尤其适合处理底层计算和高性能的需求。这篇博客(<https://eric-gao....
Objective-C和C++混编的要点 在 Objective-C++中,可以用C++代码调用方法也可以从Objective-C调用方法。在这两种语言里对象都是指针,可以在任何地方使用。例 如,C++类可以使用Objective-C对象的指针作为数据...
本篇文章将详细介绍如何在Xcode中进行C++和Objective-C的混编,以便在Objective-C项目中使用C++的STL。 首先,我们需要理解C++和Objective-C之间的主要差异。Objective-C是C的超集,增加了面向对象特性,如类别...
在进行OC与C++混编时,需确保编译器设置正确。Xcode项目中,需要在Build Settings中将“Compile Sources As”设置为“Objective-C++”,这样所有`.m`文件都会被当作Objective-C++文件处理,从而支持C++语法。 总之...
"swift oc c++混编framework demo"项目就是这样一个示例,它展示了如何将这三种语言集成到一个Framework中,并进行有效的协同工作。 首先,我们来了解一下Swift、Objective-C和C++各自的特点。Swift是Apple推出的一...
Swift与Objective-C可以混编,方便迁移旧项目。 六、Xcode的使用 Xcode是苹果官方的开发工具,支持Objective-C和Swift编程。Xcode4.2+版本已经很成熟,包含了编写、调试、测试和打包应用所需的所有功能。使用...
3. **混编Objective-C和C++**:在同一个.m文件中,你也可以使用`#ifdef __cplusplus`来在Objective-C和C++代码之间切换。这种方式通常用于在已有的Objective-C类中添加C++功能,但不推荐在大型项目中使用,因为它...
混编C++代码和Objective-C/Swift代码在iOS开发中并不常见,但在特定情况下是必要的,比如利用已有的C++库或者需要C++的高性能计算。Xcode提供了Clang的桥接技术来支持这种混编,通过创建一个Objective-C++或Swift的...
以上就是面试题第4篇1中涉及到的主要知识点,包括Objective-C与C++的混编、FFmpeg在C++和Java中的使用、FMDB数据库操作、iOS的Sandbox环境以及文件系统的管理。理解和掌握这些技术对于iOS和多媒体开发至关重要。
8. **Objective C++**:Objective C和C++可以混编,Objective C++是它们的结合体,允许在同一个项目中使用Objective C的特性以及C++的模板和STL。 9. **异常处理**:C++支持异常处理,通过try、catch、throw语句来...
然后,在C++代码中,你可以通过`extern "C"`来声明这些接口,以便C++编译器正确处理名称修饰。例如: ```cpp extern "C" { void* createQRCodeGenerator(const char* message); void releaseQRCodeGenerator(void...
首先,我们要明白OC与C++混编的核心在于Objective-C++,这是一种特殊的编译器,它允许我们同时使用OC和C++的特性。Objective-C++文件的扩展名通常为.mm,而非传统的.m(Objective-C)或.cpp(C++)。在"MXCPPTest...
通常这个需求出现在C++与C语言混编的场合,或者需要调用一些已经存在的C语言编写的标准库和第三方库。 在C++中,重载(overloading)是支持同一个作用域内可以存在多个同名的函数,这些函数通过参数列表的不同来...
GCC(GNU Compiler Collection)是一个开源的编译器套件,它支持多种编程语言,包括C、C++、Objective-C、Fortran、Ada和Go等。在Windows上使用GCC通常涉及到MinGW(Minimalist GNU for Windows)或MSYS2等环境,...
混编技术是iOS开发中的一个重要概念,它允许我们在Objective-C和Swift项目中同时使用C++代码。libcurl本身是用C语言编写,因此可以无缝地与这两种语言配合。在项目中使用libcurl,需要确保“Other Linker Flags”...