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

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设置项,在这里直接设置成下图就行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值