在开发iOS程序的过程中,通常在导入第三方的类库(.a/.o)文件会报出一系列的错误:

Undefined symbols for architecture i386:
"std::string::c_str() const", referenced from:
MP4Chunk::putTag(std::string) in libHKSUMEyeSDK.a(MP4Chunk.o)
"std::string::empty() const", referenced from:
MP4Chunk::putTag(std::string) in libHKSUMEyeSDK.a(MP4Chunk.o)
"std::allocator<char>::allocator()", referenced from:
MP4Chunk::writeFtypTag() in libHKSUMEyeSDK.a(MP4Chunk.o)
MP4Chunk::writeFreeTag() in libHKSUMEyeSDK.a(MP4Chunk.o)
MP4Chunk::writeMdatTag() in libHKSUMEyeSDK.a(MP4Chunk.o)
MP4Chunk::writeMoovTag() in libHKSUMEyeSDK.a(MP4Chunk.o)
MP4Chunk::writeMvhdTag() in libHKSUMEyeSDK.a(MP4Chunk.o)
MP4Chunk::WriteIODS() in libHKSUMEyeSDK.a(MP4Chunk.o)
MP4Chunk::writeTrakTag() in libHKSUMEyeSDK.a(MP4Chunk.o)

看似缺少了某个类库文件,但多次检查之后发现,没缺少啥引用的,甚至跟原来的Demo一个都不差,这是怎么回事?

由于第三方类库多数是用C++或者C编写的,在引用过程中,还需要告诉编译器可能会出现的语言种类,以便使用对应的解释器进行解析。

OK,那么我们只需要在XCode环境中检查以下几个配置项是否与下面一致即可:

TARGETS->Build Settings,搜索

1.Other Linker Flags:-ObjC

2.C++ Language Dialect:Compiler Default

3.C++ Standard Library:Compiler Default

4.Compile Sources As:Objective-C++或者设置为According to File Type,然后将引用到C++类库的文件后缀改为“.mm”。

iOS开发引入第三方类库的问题的更多相关文章

  1. iOS开发-常用第三方开源框架介绍

    iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser        实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...

  2. Laravel Controller中引入第三方类库

    Laravel 引入第三方类库 在Controller中引入自定义的php文件,先在app目录下创建一个新的文件夹,命名Tools(可自定义),接着创建一个MyTest.php: <?php c ...

  3. IOS网络编程——第三方类库

    IOS网络编程——第三方类库 目录 概述 ASIHttpRequest AFNetworking 其他 概述 ASIHttpRequest AFNetworking 其他

  4. TP3.2之引入第三方类库文件和普通.php文件

    1.引入第三方类库 .class.php文件 1.1 类库有写namespace命名空间 namespace Org\Util; class Auth { } 保存到ThinkPHP/Library/ ...

  5. 程序开发常用第三方类库一览表(VendorLib)

    以下是自己开发过程中用到的第三方类库,记录下来方便查阅 ------------------------------------------------------------------------ ...

  6. angular4(2-1)angular脚手架引入第三方类库(jquery)

    欢迎加入前端交流群交流知识&&获取视频资料:749539640 如何在angular4脚手架中引入第三方类库呢比如jquery.swiper.bootstrap...... 例如引入j ...

  7. iOS开发常用第三方库

    UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...

  8. iOS开发 引用第三方库出现duplicate symbol时的处理方法

      该篇文章是我自己从我的新浪博客上摘抄过来的, 原文链接为: http://blog.sina.com.cn/s/blog_dcc636350102wat5.html     在iOS开发中, 难免 ...

  9. TP5 中引入第三方类库

    通过了解tp5的目录结构,我们知道其中有两个目录是纺织扩展类库文件的. extend是放置自定义或者其他类文件的. vendor目录是放置composer类库文件的. 当我们的第三方类库文件是下载的, ...

随机推荐

  1. 关于eclipse 与OpenCV 配置频繁报错的问题总结Program "C:/SDK/android-ndk-xxx/ndk-build.cmd" is not found in PATH报错的解决!

    2018-01-3116:58:12 Program "C:/SDK/android-ndk-r8/ndk-build.cmd" is not found in PATH 今天这一 ...

  2. js_8_dom标签

    创:9_3_2017  星期4 修: 对于在a标签中,如何阻止跳转? 定义一个事件,事件顺序执行后才执行跳转,如果事件函数返回false,则后面事件就不触发 事件1 = "return 函数 ...

  3. java1.8--Null Object模式

    整理这篇博客是因为现在在整理java8中的optional,所以觉得很有必要整理下Null Object模式.java.lang.NullPointerException,只要敢自称Java程序员,那 ...

  4. Linkin大话eclipse快捷键

    刚来这家公司的时候,作为菜鸟的我在帮别人调试代码的时候,有人说我快捷键使用的很熟悉. 呵呵,工欲善其事必先利其器,以下这些快捷键是最常用的也是要必须记住的. [Ctrl开头] Ctrl+1:快速修复 ...

  5. java常用类--与用户互动

    运行java的参数: 主方法:public static void main(String[] args){}:为了让JVM可以自由调用main方法,使用public修饰,JVM通过类来调用main方 ...

  6. Linux下安装mysql(yum和源码编译两种方式)

    这里介绍Linux下两种安装mysql的方式:yum安装和源码编译安装. 1. yum安装 (1)首先查看centos自带的mysql是否被安装: # yum list installed |grep ...

  7. jdk源码->集合->LinkedList

    类的属性 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E&g ...

  8. 【转】软件开发工具介绍之 6.Web开发工具

    [本文转自http://www.cnblogs.com/dusonchen/archive/2011/02/09/1739087.html ] 1.EditPlus 无论是编写xhtml页面,还是cs ...

  9. 手机文件夹的emulated什么意思

    词典翻译是仿真,就是自带的存储卡, 手机的储存方式有两种,一种是手机内存 ,一种是SD卡内存.

  10. openvpn的搭建

    openvpn搭建 原创不易,转载请注明 openvpn简介 1.1 openvpn原理 OpenVpn的技术核心是虚拟网卡,其次是SSL协议实现 虚拟网卡是使用网络底层编程技术实现的一个驱动软件,安 ...