关于静态库引用文件

如果希望你的工程能在未来能导出成静态库,那么在你编写的时候要遵循静态库引用原则,使用这种方式。
注意:这种引用方式必须在你的Products下静态库成黑色时候,才能编译通过。
使用:出现问题
1、正确引用头文件方法:
2、关于找不到文件的报错:直接看下边
分析:
关于第三方库找不到文件的提示错误。简单补充下吧,别走弯路。
首先你要确定这个错误产生的原因:大致分两种,
一:你做的项目缺失文件,百度下,加入就解决了;
二:你引入的第三方框架发生找不到文件错误:这样的结果分两种:
二、一:开发第三方框架的程序人员没有做好自己的框架。尤其是在生成框架的时候,没有设置好自身属性。导致使用者用的时候出现找不到文件错误,最后迫使使用者不得不去改自己的工程配置。
二、二:你在引入第三方框架的时候,少引用了文件。
 
 
编译的framework,真机版只能真机使用,模拟版,只能模拟版使用,而且选择了不同的设备也会有影响。
分析原因:
在我们生成静态库的时候,我们选择的是iPad Retina。也就是说这个静态库在引用的时候,必须也是iPad Retina。否则Xcode编译器会找不到文件所在。

大家可以实验下,在iPad Retina下导出静态库,在其他工程使用的时候,如果用iPad Retina跑就没有错误。如果选择其他设备就会提示找不到文件。
 
兼容全部设备解决方法:改下静态库的兼容属性。Target: -> Build Settings ->  Architectures -> Build Active Architecture Only 全改成NO;
Build Active Architecture Only
这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当前的architecture版本,所以会报错编译不到文件,出错("_OBJC_CLASS_$_xxxxxx", referenced from:)       
而设置为no时,会编译所有的版本,这样就解决编译出错的问题了。      
这个是设备对应的architecture:
armv6:iPhone 2G/3G,iPod 1G/2G
armv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3G
armv7s:iPhone5, iPod5
arm64:iPhone5s
编译出的版本是向下兼容的,比如你设置此值为yes,用iphone4编译出来的是armv7版本的,iphone5也可以运行,但是armv6的设备就不能运行。
好了,你分析完后就好办了,我们做的这个静态库没有设置自己的兼容属性,所以就照成了这种错误。在iPad Retina的模拟器上跑就正常,换成其他的模拟设备就报错。所以改下其属性就能解决。
Target: -> Build Settings ->  Architectures -> Build Active Architecture Only 全改成NO;
关于制作静态库兼容多版本的设置:
 

引用自定义的framework的更多相关文章

  1. Android Studio引用自定义的framework.jar包

    1.在app/libs/目录下添加framework.jar包. 2.打开build->Edit Libraries and Dependencies,把libs/framework.jar放到 ...

  2. vim中如何引用自定义模板文件

    我们在使用vim新建文件时可以引用自定义模板,来避免重复的数据格式处理花费太多时间. 实现方法很简单,只需要2步即可:1. 在.vim/template目录放入自己的模板文件(如shellconfig ...

  3. DotNetNuke-DNN Module模块引用自定义CSS或者JS文件

    当新增一个module时,有时会引用自定义的或者第三方CSS.JS文件. 1.添加自定义的CSS时,可以直接在module的根目录下添加module.css,然后框架会自动加载此CSS: 2.这个比较 ...

  4. C程序中引用自定义的C函数模块

    原文:C程序中引用自定义的C函数模块 我们知道,刚开始接触C语言编程,一般都是在一个.c或者.cpp(以下只说.c)的文件中编写代码,其中一定会有一个入口函数, 也就是main()函数,你可以将程序代 ...

  5. Android studio怎么使用自定义的framework而避免冲突报错和点不进去报红。

    文件:xx\project_abc\video\build.gradle保证可以运行到自定义的framework而不报错,可能因为project和module名字相同所以导致下面的路径是绝对路径,其他 ...

  6. VS2017 Linux C++引用自定义的动态库

    前一篇博客讲了用系统库libpthread.so的例子,只需要在项目属性页的[C++->命令行参数]和[链接器->命令行参数]中加上对应参数(比如-pthread)即可,然后我试着引用自己 ...

  7. YII中引用自定义类

    如果通过actions方法引用其他自定义类时 <?php class LoginController extends Controller { public function actionInd ...

  8. Android Studio中如何使用自定义的framework库

    在安卓app开发中,通常不会遇到需要使用自定义framework库的情况,使用的都是标准的内核库.但也有例外,比如针对定制化的ROM,ROM厂商可能在ROM中对安卓源码做过修改,对应用层app暴露出与 ...

  9. Android XML中引用自定义内部类view的四个why

    今天碰到了在XML中应用以内部类形式定义的自定义view,结果遇到了一些坑.虽然通过看了一些前辈写的文章解决了这个问题,但是我看到的几篇都没有完整说清楚why,于是决定做这个总结. 使用自定义内部类v ...

随机推荐

  1. Hadoop-安装过程-单虚拟机版(伪分布式)(Ubuntu13.04版本下安装)

    由于新装的Ubutu默认情况下,系统只安装了SSH客户端,需要自行安装SSH服务端 如何确定是否安装了SSH服务端? 可以通过命令ssh localhost,结果如下,即未安装SSH服务端:   安装 ...

  2. 第二百九十五天 how can i 坚持

    买了个小米电话卡,写的让周六日送,非得今天给送来,浪费了1块钱.买回来还没法激活,这.. 昨天差点挂掉,今天感觉好多了,不过今天好冷,回来快冻死了. 今天啊,年终奖订下来了,没有想象的高 啊,有点小失 ...

  3. HTTP返回码总结 (zz)

    Http返回码是服务器给爬虫的信息,需要有效的利用. HTTP协议状态码表示的意思主要分为五类 ,大体是 :  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~  1××  保留  2××  ...

  4. 轻松学习 red5 教程 像视频一样很详细还有代码直接可Copy

    转载自:http://blog.csdn.net/hongdianking/archive/2009/11/12/4804339.aspx 最近要做一个流媒体服务器,在网上逗留了好久决定选择 red5 ...

  5. MongoDB的备份与恢复

    0. 目录 整库备份 整库恢复 单collection备份 单collection恢复 1. 备份 MongoDB提供了备份工具,mongodump.exe,在bin目录下,其用法如下: mongod ...

  6. 在JS和.NET中使用JSON (以及使用Linq to JSON定制JSON数据)

    转载原地址: http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如 ...

  7. Codeforces Round #352 (Div. 2) D. Robin Hood (二分答案)

    题目链接:http://codeforces.com/contest/672/problem/D 有n个人,k个操作,每个人有a[i]个物品,每次操作把最富的人那里拿一个物品给最穷的人,问你最后贫富差 ...

  8. Unity3D之Mecanim动画系统学习笔记(十一):高级功能应用

    动作游戏 还记得读书的时候熬夜打<波斯王子>的时光,我们的王子通过跳跃穿过墙壁的小洞.在高层建筑上进行攀爬和跳跃,还有在操作失误掉下高楼和触发必死机关后使用时之沙的时光倒流功能回归死亡之前 ...

  9. Unity3D之空间转换学习笔记(一):场景物体变换

    该系列笔记基于Unity3D 5.x的版本学习,部分API使用和4.x不一致. 目前在Unity3D中,除了新的UGUI部分控件外,所有的物体(GameObject)都必带有Transform组件,而 ...

  10. Host key verification failed解决

    SSH 登录失败:Host key verification failed 由于公钥不一样了,所以无法登录,提示信息是 KEY 验证失败. 解决方法是: 在 /root/.ssh/known_host ...