xcode 制作静态库

本文详细介绍如何在Xcode环境中创建、编译并使用iOS静态库。包括如何针对真机和模拟器生成不同架构的库文件,并最终合并为一个通用库。

~/Library 目录在 lion 下是默认隐藏的。这样很不方便。用一下命令可以使其显示:chflags nohidden ~/Library
如果想再让其隐藏,可以:
chflags hidden ~/Library

成功运动结果:(此处是自己封装自己的 demo 代码)对官方的 uitabbarcontroller 进行自定义。
代码下载地址:
http://www.cocoachina.com/bbs/read.php?tid=75642&keyword=UITabBarController%D7

%D4%B6%A8%D2%E5

任何转载必须注明出处:

http://hi.baidu.com/yunhuaikong/blog/item/c47467f83ac77946242df2ee.html 我这个文档的静态库的开发是基于 Xcode4.2 iOS SDK5.0 编写的。Xcode4 跟之前的 Xcode3 还是有不少的差别的。
下面就简单写一个静态库和一个调用静态库的例子。

静态库的编写:
1.静态库工程的建立:Xcode New 一个新的 project,选择 IOS 下面的 Framework&Library,下面有一个 Cocoa Touch Static Library。直接 next 去建立一个 UItab 这样的工程。

http://hi.baidu.com/yunhuaikong

http://hi.baidu.com/yunhuaikong

2.工程建立了,我们就需要将我们的文件引入,删除这里自动自成的.h .m 文件,将我们自己的文件插入此项目中:如下

3.OK,编译,我们可以在 Products 下面找到我们编译生成的 libUItab.a 这个文件。注意未编译前为红色:左 编译后为黑色: 右

4.ok,在右边 这个 libUItab.a 文件上右键 Open In Finder。这时候我们打开了一个文件夹,里面有一个 libUItab.a。后面我们继续编写一个调用这个 libUItab.a App

但是这个 App 在编译时候会出错,通过这个错误的解决,说明 Xcode 的一些编译相关的东西。这里,我们在 command 下面根据路径找到这个文件,用这个非常重要的命令查看一下这个 lib 的信息!
打开终端写入如下命令:这是什么?这就是所在的路径

以下均是在自己的 mac 上的路径。你需要将/Users/user/Library/Developer/Xcode/DerivedData/UItab-dbvoszbzpavyglaboxgflvrnzfce/Build/Products 替换成你的路径。

路径如下:

http://hi.baidu.com/yunhuaikong

http://hi.baidu.com/yunhuaikong

cd /Users/user/Library/Developer/Xcode/DerivedData/UItab-dbvoszbzpavyglaboxgflvrnzfce/Build/Products
我们手动打开这个路径:可以看到如下信息:Debug-iphoneos这个是给真机用的,那我们要给模拟器和真机封装的静态库应该都能用才好。这个下面介绍!!!!!

然后再在终端 打开这个文件:

cd /Users/user/Library/Developer/Xcode/DerivedData/UItab-dbvoszbzpavyglaboxgflvrnzfce/Build/Products/Debug-iphoneos
命令是:lipo -info libUItab.a,可以看到显示的结果是:Arch Arm7。下面我会具体介绍一下。

http://hi.baidu.com/yunhuaikong

http://hi.baidu.com/yunhuaikong

5.建立一个调用这个 libUITab.a 的应用。应用就很简单了,我们添加刚才 libUITab.a *.h文件。 然后在这个工程的 Build Phases Link Binary With Library 里面添加我们刚才拷贝出来的那个 libUITab.a

6.插入了 h a 文件后,我们就可以在 control 里面调用这个 libUITab.a 函数了。

.m 文件中使用

http://hi.baidu.com/yunhuaikong

http://hi.baidu.com/yunhuaikong

7.OK,编译运行这个应用程序。额。。。错误了。。这个就是这篇文档的关键了。主要就是为了介绍编译静态库相关的东西。

8.可以看到 undefine symbols for architecture i386 这样的错误。其实这个错误原因很简单,就是因为,我们用错了编译出来的 libUITab.a lib,在模拟器里面,我们需要的是基于 i386构架编译的 static lib,但是这个 a 文件,大家还记得前面说的 arm6 arm7 构架的么。这个a其实是在iphone这个arm构架上运行的代码。其实show in finder指向的是一个ios device真机的库,并不是 i386 模拟器下的库。那如何编译 i386 的库呢?看见第二张图片的UITab>IOS Device了么?我们将这个iOS Device修改成iPhone5.0 Simulator。在进行编译,

http://hi.baidu.com/yunhuaikong

http://hi.baidu.com/yunhuaikong

这样就可以编译出 i386 下面的库。这个时候我们 show in finder 打开的文件夹还是
ios device 下的库。我们最好自己去那个目录下看一下。这里我们用 command 去查看了一下目录情况,如下:可以看到一个 iphoneos 的目录和一个 simulator 的目录。然后我们再看看这个目录与第 4 条所示的目录有什么不同!!看到了吗?如果你看不到,那就是人品 问题。同样也有一个 libUITab.a 文件。

9.debug-iphoneos 里面的是基于 arm6 arm7 编译出来的库文件。debug-iphonesimulator文件夹下面的是基于 i386 编译出来的文件。

10.有二个库,这二个库一个是用于真机运行的一个是用于模拟器运行的.其实我们可以利用lipo 将这二个文件打包成一个通用的 a 文件。命令如下:[如果你不会这个,那你就不要做 ios 开发啦!!!!!,这么明白,有的人还得非问这个是什么。1!!!!!! ]

/Users/user/Library/Developer/Xcode/DerivedData/UITab-astuyxzptgvifbgmiuyszresdkrc/Build/Products 替换成你的路径。
/Users/user/Desktop/libUITab.a 替换成合并后的路径,就是合并后你想把它放在哪里。我这里是放在桌面上的!!!!!。

lipo -create "/Users/user/Library/Developer/Xcode/DerivedData/UITab-astuyxzptgvifbgmiuyszresdkrc/Build/Products/Debug-iphonesimulator/libUITab.a" "/Users/user/Library/Developer/Xcode/DerivedData/UITab-astuyxzptgvifbgmiuyszresdkrc/Build/Products/Debug-iphoneos/libUITab.a" -output "/Users/user/Desktop/libUITab.a"

11.打包以后的库文件,我们查看信息,可以看到如下信息:在打此命令前,你必须先 cd 到对应的目录。此处的目录为
cd /Users/user/Desktop
然后打入如下命令:

http://hi.baidu.com/yunhuaikong

http://hi.baidu.com/yunhuaikong

lipo -info libUITab.a

如上,你已经看到了,它具备了 i386 arm7 的条件。 现在我们这个静态库,支持的构架已经是 armv7 i386 了。

12.ok,这个通用库生成后,我们将原来,调用这个库进行替换一下,在进行编译,成功编译。 

内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练与应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化与训练,到执行分类及结果优化的完整流程,并介绍了精度评价与通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者与实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练流程与关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优与结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置与结果后处理环节,充分利用ENVI Modeler进行自动化建模与参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要求以保障训练效率。
内容概要:本文系统阐述了企业新闻发稿在生成式引擎优化(GEO)时代下的全渠道策略与效果评估体系,涵盖当前企业传播面临的预算、资源、内容与效果评估四大挑战,并深入分析2025年新闻发稿行业五大趋势,包括AI驱动的智能化转型、精准化传播、首发内容价值提升、内容资产化及数据可视化。文章重点解析央媒、地方官媒、综合门户和自媒体四类媒体资源的特性、传播优势与发稿策略,提出基于内容适配性、时间节奏、话题设计的策略制定方法,并构建涵盖品牌价值、销售转化与GEO优化的多维评估框架。此外,结合“传声港”工具实操指南,提供AI智能投放、效果监测、自媒体管理与舆情应对的全流程解决方案,并针对科技、消费、B2B、区域品牌四大行业推出定制化发稿方案。; 适合人群:企业市场/公关负责人、品牌传播管理者、数字营销从业者及中小企业决策者,具备一定媒体传播经验并希望提升发稿效率与ROI的专业人士。; 使用场景及目标:①制定科学的新闻发稿策略,实现从“流量思维”向“价值思维”转型;②构建央媒定调、门户扩散、自媒体互动的立体化传播矩阵;③利用AI工具实现精准投放与GEO优化,提升品牌在AI搜索中的权威性与可见性;④通过数据驱动评估体系量化品牌影响力与销售转化效果。; 阅读建议:建议结合文中提供的实操清单、案例分析与工具指南进行系统学习,重点关注媒体适配性策略与GEO评估指标,在实际发稿中分阶段试点“AI+全渠道”组合策略,并定期复盘优化,以实现品牌传播的长期复利效应。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值