XCode混编设置小记

当使用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++代码,要对编译器做一些设置,先看图:

XCode混编设置小记

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++即可。

懒得打字,资源来自网络:http://blog.csdn.net/wangyuchun_799/article/details/7729222

原文链接: https://www.cnblogs.com/zhidao-chen/archive/2013/05/12/3074391.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    XCode混编设置小记

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/88178

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午11:28
下一篇 2023年2月9日 下午11:28

相关推荐