码迷,mamicode.com
首页 > 移动开发 > 详细

IOS库引用产生的bug - Apple LLVM 5.1 - Language

时间:2015-01-29 10:28:48      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

objective-c的优点是兼容c++代码,所以我们在项目中可以很方便的把c++实现的库拿过来使用,不过使用时需要设置一些地方,因为没有设置好会带来很奇怪的问题


下面是在使用这些库时编译器报的错,可以看到报的错很让人摸不着头脑

技术分享技术分享


刚开始一直以为是target里header search path没有设置正确,所以在build settings里折腾了很久。


后来请教了很多大师,才知道这是库代码在引用c++的基础类型时没有引用到导致的,我们需要把相应的引用了c++库的类设置一下。主要是设置这个类的编译类型,


有两种设置方法

  • 在build settings下面有个Apple LLVM 5.1 - Language,我们可以设置我们的代码是用什么方式编译的,如下图

技术分享

默认是According to File Type,这样xcode在编译时会去查找每个oc文件的设置,oc文件的设置地方在.m文件的show in File inspector里,如下图

技术分享

我们可以选择不同的type

技术分享

默认是Objective-c Sourcce,如果我们引入的库使用的是c++代码实现,我们就需要把该文件设置成Objective-C++ Source了,这样xcode在编译时就不会产生找不到__char16_t这种错误了

  • 还有一种方法是直接在build settings的Apple LLVM 5.1 - Language中设置,就是前面我们看到的Compile Sources As设置项,在这里直接设置成下图就行了技术分享

IOS库引用产生的bug - Apple LLVM 5.1 - Language

标签:

原文地址:http://blog.csdn.net/vic_fang/article/details/43266985

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!