开发过程中,免不了要用到一些第三方或者是别人写好的一些Demo,这时就经常会用到别人写的一些静态库(.a文件)和n多个头文件(.h文件),这些文件不是简单地把它们拉到自己的工程里面就行的,还要设置一些路径。

在使用别人写的东西的时候,经常会出现各种各样变态的问题,这时最忌就是心浮气躁,一定要静下心来,慢慢解决。一般要经过以下步骤:

1.保证你已经把别人写的文件全部拉到你的工程里了。因为别人的工程运行都没问题,那你把别人写的东西拿来用也是能用的,只是可能没有把别人的文件全部(或者是你要用的那些)拉到自己的工程或者缺少某些配置而已,不用担心别人的东西不能用。

2.看看别人都用了哪些库,去到Frameworks文件里面看,如下图 
 
大家可能看到了有.a的文件了,着就是静态库,但是在此步骤里,我们先不管这些库,我们先把除了.a以外的其它库添加进去。具体过程如下: 
2.1点选你的工程 
 
2.2在右边选择Build Phases->Link Binary With Libraries 
 
2.3点击下面的+号,在输入框输入关键字,再单击你需要的库,选择右下角的Add即可 

3.现在说说头文件路径的设置。如下图,我的工程里面明明是有这个文件的,却提示我说找不到,那是因为路径不对,它确实找不到,所以我们需要为它设置它能找到的路径。 

3.1首先在桌面新建一个文件夹,我把它命名为include。然后把所有的.h的头文件拷贝到文件夹里去。在工程里Show in Finder ,把include拷贝到工程里。 
 
3.2然后再按住include文件夹,拖到工程里去,选择每个分组的第一个选项,finish 
 
3.3点击左列表最上面的工程,再选择右边的Build Settings,在输入框输入“sea”,就可以看到下面有Search Paths->Header Search Paths 

3.4在工程里选择include文件夹,Show in Finder,然后再回到Header Search Paths页面,双击Header Search Paths的右边,会弹出一个很大的输入框
 
3.5把步骤3.4 Show in Finder出来的include文件整个文件夹拖进输入框,这样头文件的路径就设置完了,运行一下,刚才的错误没了。 

4.在ARC出来之后,还会出现下面的问题 

那是因为你的工程是支持ARC的,别人的是以前写的,还不支持ARC。但是我们可以修改一下,使它们能互相兼容。 
4.1再次回到最左边,选择工程,在右边选择Build Phrases ,可以看到有Compile Sources选项,点开它,找到刚才报错的文件,双击此文件的右边,也会打开一个很大的输入框,在此输入-fno-objc-arc就行了。如果文件较多,也可以在搜索框里面输入关键字搜索 

5.现在说一说静态库的导入。如果你的工程出现下面的Library not found for 
 
这种情况,那就是缺少类库或者类库路径不对的问题了,如果你确保你已经把所有除了.a以外需要的库都按照步骤2导入了,现在就是要导入静态库了(.a文件)如下图,一块黑黑的东西 
 
5.1在桌面上新建文件夹,我命名为lib.a。然后把所有的.a文件拷贝到lib.a文件夹,再把此文件夹拖到工程里去,和步骤3.1,3.2新建include文件夹类似。 
5.2点击左列表最上面的工程,再选择右边的Build Settings,在输入框输入“sea”,就可以看到下面有Search Paths->Library Search Paths 

5.3在工程里面选择lib.a文件夹Show in Finder ,再去到Library Search Paths页面,双击此项的右边,会弹出一个很大的输入框,把整个lib.a文件夹拖到输入框里去,这样静态库就添加完成了,运行一下,发现错误消失了。 

附录: 
1.Library not found for …(A) 
1.1先在工程里查找是否存在A,如果是红色的,则删除 
1.2如果A=AFNetworking,则在 Library Search Paths设置(有时候用coocpods导入时会发生这种情况),如下图 
 
1.3可能缺少某些类库,查看官方的接入文档说明

最后,我再次强调一下,一定要保证你已经把你需要的文件全部拖到了你的工程里面去,我在使用别人的Demo的时候就曾经深受其害,明明已经做足步骤了,总是提醒说找不到某某文件,那时还在抱怨别人的东西不能用,后来休息了一下,静下心来。慢慢地按照系统的提示去找,发现我真的没把那文件拖进工程,对此我对我的抱怨表示惬意。

iOS - 静态库的导入和头文件路径的设置的更多相关文章

  1. 使用ar命令删除iOS静态库重复编译的.o文件

    关于 xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误 看这里 http://www.cnblogs.com/cocoajin/p/3917709.ht ...

  2. iOS静态库相关-封装lib

    来源:http://blog.csdn.net/zsomsom/article/details/9163635 Library介绍 基本知识 在实际的编程过程中,通常会把一些公用函数制成函数库,供其它 ...

  3. iOS静态库.a文件制作和导入使用

    iOS静态库.a文件制作: 1.新建Cocoa Touch Static Library工程 新建工程 - 选择iOS-FrameWork&Libary,选择 Cocoa Touch Stat ...

  4. 判断IOS静态库(.a文件)是否支持模拟器和真机运行

    判断IOS静态库(.a文件)是否支持模拟器和真机运行 在mac终端下,进入到.a文件目录下,然后输入: lipo -info libMyAlertView.a Architectures in the ...

  5. iOS静态库及Framework 创建

    本文转自cocoachina,尊重作者的汗水. 讲述的非常透彻,有需要的朋友可以阅读实践.转载请注明出处 //=================以下留着备份==================// 在 ...

  6. iOS静态库小结--(yoowei)

    准备知识: 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.根据源代码的公开情况,库可以分为2种类型 a.开源库 公开源代码,能看到具体实现 ,比如SDWebImage.AFNetw ...

  7. iOS 静态库的封装

    参考网址:http://www.jianshu.com/p/b754709135fb http://www.jianshu.com/p/443a5b8f3894   注意:封装静态库时要注意的地方: ...

  8. iOS静态库.a总结(2017.1.24增加脚本打包方法)

    修改于:2017.1.24 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.根据源代码的公开情况,库可以分为2种类型 a.开源库 公开源代码,能看到具体实现 ,比如SDWebImag ...

  9. iOS静态库 ---iOS-Apple苹果官方文档翻译

    iOS静态库 ---iOS-Apple苹果官方文档翻译 •什么是库? 库是共享程序代码的方式,一般分为静态库和动态库.静态库与动态库的区别? 静态库:链接时完整地拷贝至可执行文件中,被多次使⽤用就为什 ...

随机推荐

  1. svg入门详解

    一.svg是什么? SVG 意为可缩放矢量图形(Scalable Vector Graphics). SVG 是使用 XML 来描述二维图形和绘图程序的语言. SVG 图像在放大或改变尺寸的情况下其图 ...

  2. spring boot后端使用fastjson,错误代码415, 500

    $.post({ url: "/register", dataType: "json", contentType: "application/json ...

  3. 作业——10 分布式文件系统HDFS 练习

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3292 利用Shell命令与HDFS进行交互 以”./bin/dfs ...

  4. JAVA学习网站分享

    好久没用博客园了 最近工作不忙了,可以花时间自己学习知识提升自己,所以开始查找各种资料 java资源查找网站:           http://www.java1234.com/ 前端学习网站:  ...

  5. GWAS Catalog数据库简介

    GWAS Catalog The NHGRI-EBI Catalog of published genome-wide association studies EBI负责维护的一个收集已发表的GWAS ...

  6. nginx日志切割和日志清理

    ##########################日志切割################################1.上传脚本到/usr/local/nginx/logs/下 2.并附执行权 ...

  7. Ubuntu / CentOS 安装 Anaconda 并创建虚拟环境

    Anaconda可以很好地帮我们管理Python的虚拟环境,Windows上操作极其方便,现在讲一下 Ubuntu 和 CentOS 上的使用方法 ubuntu 安装Anaconda版本 安装方法一: ...

  8. matlab学习笔记8 基本绘图命令-LineSpec线条设定

    一起来学matlab-matlab学习笔记8 基本绘图命令_4 LineSpec线条设定 觉得有用的话,欢迎一起讨论相互学习~Follow Me 绘图函数接受线条设定作为参数并相应地修改生成的图形.您 ...

  9. 导入一个eclipse的java项目到IDEA报Cannot find JDK '1.7' for module 'TEST'

    解决办法: 右键你的项目--------------->OPen module settings 将dependencies里面的module sdk改成你安装的java版本就可以了(比如我电脑 ...

  10. [LeetCode] 93. Restore IP Addresses 复原IP地址

    Given a string containing only digits, restore it by returning all possible valid IP address combina ...