首页 > 移动平台 > 详细

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

时间:2015-01-29 10:27:13      阅读:381      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!