亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 系統(tǒng) > iOS > 正文

xcode 4 制作靜態(tài)庫(kù)圖文詳解

2020-02-19 15:58:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

最近在做Apple的IOS開(kāi)發(fā),有開(kāi)發(fā)靜態(tài)庫(kù)的需求,本身IOS的開(kāi)發(fā),只允許靜態(tài)庫(kù)或者Framework。在Xcode上沒(méi)有找到允許編譯,如同Android上的*.so和Win32上的dll這樣的說(shuō)法。不過(guò)Framework這樣的框架,估計(jì)也是類似動(dòng)態(tài)庫(kù)的實(shí)現(xiàn),不過(guò)沒(méi)有具體研究過(guò),后續(xù)繼續(xù)深入研究。

我這個(gè)文檔的靜態(tài)庫(kù)的開(kāi)發(fā)是基于Xcode4.2和iOS SDK5.0編寫的。Xcode4跟之前的Xcode3還是有不少的差別的。

下面就簡(jiǎn)單寫一個(gè)靜態(tài)庫(kù)和一個(gè)調(diào)用靜態(tài)庫(kù)的例子。

靜態(tài)庫(kù)的編寫:

1.靜態(tài)庫(kù)工程的建立:

Xcode New一個(gè)新的project,選擇IOS下面的Framework&Library,下面有一個(gè)Cocoa Touch Static Library。直接next去建立一個(gè)Print這樣的工程。

2.工程建立

我們添加很簡(jiǎn)單的"- (void)printA;"和"+ (void)printB;"的方法,這個(gè)方法的實(shí)現(xiàn)也是很簡(jiǎn)單的,在*.m文件中的實(shí)現(xiàn)就是一個(gè)"NSLog(@“”);"這樣我們編譯出來(lái)的libstaticlib就可以被其他的IOS工程進(jìn)行調(diào)用了。這塊注意一下,目前我們的Print->iOS Device

 

3.編譯前準(zhǔn)備

這里分release與debug版本,需要設(shè)置一下

4.OK,編譯

我們可以在Products下面找到我們編譯生成的libstaticlib.a這個(gè)文件。

注意未編譯前為紅色:左                             編譯后為黑色: 右

       

 

5.ok

在右邊 這個(gè)文件上右鍵Open In Finder。這時(shí)候我們打開(kāi)了一個(gè)文件夾,里面有一個(gè)libPrint.a。后面我們繼續(xù)編寫一個(gè)調(diào)用這個(gè)libPrint.a的App。但是這個(gè)App在編譯時(shí)候會(huì)出錯(cuò),通過(guò)這個(gè)錯(cuò)誤的解決,說(shuō)明Xcode的一些編譯相關(guān)的東西。這里,我們?cè)赾ommand下面根據(jù)路徑找到這個(gè)文件,用這個(gè)非常重要的命令查看一下這個(gè)lib的信息!

打開(kāi)終端寫入如下命令:這是什么?這就是所在的路徑 

以下均是在自己的mac上的路徑。你需要將/Users/pjk1129/Library/Developer/Xcode/DerivedData/Print-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products/ 替換成你的路徑。

cd /Users/pjk1129/Library/Developer/Xcode/DerivedData/Print-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products/  

我們手動(dòng)打開(kāi)這個(gè)路徑:可以看到如下信息:Release-iphoneos

 

這個(gè)是給真機(jī)用的,那我們要給模擬器和真機(jī)封裝的靜態(tài)庫(kù)應(yīng)該都能用才好。這個(gè)下面介紹!?。。?!  

 

然后再在終端 打開(kāi)這個(gè)文件:cd /Users/user/Library/Developer/Xcode/DerivedData/UItab-dbvoszbzpavyglaboxgflvrnzfce/Build/Products/Debug-iphoneos

命令是:lipo -info libPrint.a,可以看到顯示的結(jié)果是:Arch是  Arm7。下面我會(huì)具體介紹一下。

6.建立一個(gè)調(diào)用這個(gè)libPrint.a的應(yīng)用

應(yīng)用就很簡(jiǎn)單了,我們添加剛才libPrint.a的*.h文件。 然后在這個(gè)工程的Build Phases的Link Binary With Library里面添加我們剛才拷貝出來(lái)的那個(gè)libPrint.a。

 

7.插入了h和a文件后

我們就可以在control里面調(diào)用這個(gè)libPrint.a 函數(shù)了。

#import "AstroDiskAppDelegate.h"

#import "Print.h"

 

 

@implementation AstroDiskAppDelegate

 

@synthesize window = _window;

 

- (void)dealloc

{

    [_window release];

    [_viewController release];

    [super dealloc];

}

 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    

    //調(diào)用libPrint.a

    [Print printB];

    Print  *print = [[[Print alloc] init] autorelease];

    [print printA];

 

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    [self.window makeKeyAndVisible];

    return YES;

}

 

 

8.OK,編譯運(yùn)行這個(gè)應(yīng)用程序。

 

編譯出現(xiàn)錯(cuò)誤了。這個(gè)就是這篇文檔的關(guān)鍵了。主要就是為了介紹編譯靜態(tài)庫(kù)相關(guān)的東西。

 

9.可以看到undefine symbols for architecture i386這樣的錯(cuò)誤。

其實(shí)這個(gè)錯(cuò)誤原因很簡(jiǎn)單,就是因?yàn)?,我們用錯(cuò)了編譯出來(lái)的libUITab.a lib,在模擬器里面,我們需要的是基于i386構(gòu)架編譯的static lib,但是這個(gè)a文件,大家還記得前面說(shuō)的arm6 arm7構(gòu)架的么。這個(gè)a其實(shí)是在iphone這個(gè)arm構(gòu)架上運(yùn)行的代碼。其實(shí)show in finder指向的是一個(gè)ios device的庫(kù),并不是i386模擬器下的庫(kù)。那如何編譯i386的庫(kù)呢?看見(jiàn)第二張圖片的Print>IOS Device了么?我們將這個(gè)iOS Device修改成iPhone5.0 Simulator。在進(jìn)行編譯,這樣就可以編譯出i386下面的庫(kù)。這個(gè)時(shí)候我們show in finder打開(kāi)的文件夾還是ios device下的庫(kù)。我們最好自己去那個(gè)目錄下看一下。這里我們用command去查看了一下目錄情況,如下:可以看到一個(gè)iphoneos的目錄和一個(gè)simulator的目錄。

 

然后我們?cè)倏纯催@個(gè)目錄與第4條所示的目錄有什么不同! 同樣也有一個(gè)libPrint.a文件。

 

10.錯(cuò)誤原因分析

Release-iphoneos里面的是基于arm6 arm7編譯出來(lái)的庫(kù)文件。Release-iphonesimulator文件夾下面的是基于i386編譯出來(lái)的文件。

11.合并.a文件,制作通用靜態(tài)庫(kù)

這二個(gè)庫(kù)一個(gè)是用于真機(jī)運(yùn)行的一個(gè)是用于模擬器運(yùn)行的.其實(shí)我們可以利用lipo將這二個(gè)文件打包成一個(gè)通用的a文件。命令如下:

將/Users/user/Library/Developer/Xcode/DerivedData/UITab-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products替換成你的路徑。 

將/Users/user/Desktop/libPrint.a替換成合并后的路徑。 

lipo -create /Users/pjk1129/Library/Developer/Xcode/DerivedData/Print-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products/Release-iphonesimulator/libPrint.a  /Users/pjk1129/Library/Developer/Xcode/DerivedData/Print-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products/Release-iphoneos/libPrint.a  -output /Users/pjk1129/Desktop/libPrint.a

 

12.打包以后的庫(kù)文件,我們查看信息

 

然后打入如下命令:lipo -info /Users/pjk1129/Desktop/libPrint.a 

可以看到如下信息:


如上,你已經(jīng)看到了,它具備了i386和arm7的條件。 現(xiàn)在我們這個(gè)靜態(tài)庫(kù),支持的構(gòu)架已經(jīng)是armv7 i386了。

 

13.ok,經(jīng)過(guò)上述步驟后

這個(gè)通用庫(kù)生成后,我們將原來(lái),調(diào)用這個(gè)庫(kù)進(jìn)行替換一下,在進(jìn)行編譯,成功編譯,運(yùn)行結(jié)果如下所示:

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
欧美亚一区二区三区| 亚洲天堂一区在线| 日韩av一区二区三区四区| 成人偷拍自拍| 最新国产一区| 尤物视频在线观看| 欧美日韩伦理在线免费| 高清av不卡| 午夜精品久久久久久久99热黄桃| 福利写真视频网站在线| 国产亚洲xxx| 精品成人国产在线观看男人呻吟| free欧美| 国产欧美一区二区三区另类精品| 制服丝袜影音先锋| 青青草国产免费一区二区下载| 色婷婷综合缴情免费观看| 日韩欧美在线视频免费观看| 91视频免费看片| 欧美大片专区| 一本色道精品久久一区二区三区| dy888夜精品国产专区| 欧洲激情视频| 两个人的视频www国产精品| 中文字幕xxxx| 亚洲黄色尤物视频| 成人av在线亚洲| 美女的诞生在线观看高清免费完整版中文| xxxxxx国产精品视频| 狠狠躁狠狠躁视频专区| 欧美性色欧美a在线播放| 99九九电视剧免费观看| 日日天天狠狠| 天天久久夜夜| 手机免费av片| 久久婷婷色综合| 俺去啦俺在线观看| 精品人妻伦一二三区久久| 超碰精品一区二区三区乱码| 飘雪影视在线观看免费观看| 天天天天天天天操| 四虎永久在线高清国产精品| 久久狠狠久久| 日韩欧美第一页| 四虎免费在线观看视频| 人妻偷人精品一区二区三区| 久久9999久久免费精品国产| 国产成人97精品免费看片| 精品国产伦一区二区三区| 4438x成人网全国最大| 超碰一区二区| 亚洲一二三区精品| 欧美亚洲国产视频小说| 欧美精品 国产精品| 国产真人真事毛片| 热99精品里视频精品| fc2ppv完全颜出在线播放| 一本久久精品| 久久精品国产亚洲av麻豆色欲| 好吊色视频在线观看| 噜噜噜久久亚洲精品国产品小说| 精品人妻少妇一区二区| 久久久久国产精品| 色噜噜狠狠一区二区三区狼国成人| 一区在线观看| 亚洲黄色av女优在线观看| 天天操夜夜干| 久久精品99久久久香蕉| 精品系列免费在线观看| 又色又爽又黄无遮挡的免费视频| 久久国产精品波多野结衣| 精品无人乱码一区二区三区| 香蕉在线播放| 亚洲品质自拍| 国产在线视频自拍| 中文字幕亚洲无线码在线一区| 国产一区二区黄色| 婷婷国产在线| 成人午夜视频在线观看| 黄色av免费播放| 欧美性jizz18性欧美| 欧美中文日韩| 男同在线观看| 69av视频在线| 91精品国产91久久久久久久久| 久久99精品久久| 欧美,日韩,国产在线| 国产精品网站在线观看| 欧美伊人精品成人久久综合97| 亚洲欧美色图小说| 在线视频一区二区三区| 欧美男男freegayvideosroom| 人妻 日韩 欧美 综合 制服| 91久久国产精品| 免费视频网站在线观看入口| 国产精品大片wwwwww| 成人国产精品免费观看视频| 午夜老司机在线观看| 亚洲精品永久视频| 综合成人在线| 精品人妻一区二区三区蜜桃视频| www.天堂在线观看| 日韩精品免费一区二区夜夜嗨| 精品偷拍各种wc美女嘘嘘| 日韩视频在线一区二区| 国产乱子夫妻xx黑人xyx真爽| 欧美不卡三区| 免费精品国产自产拍观看| 超碰在线免费观看97| 中文字幕精品视频| 国产经典自拍视频在线观看| 久久人妻免费视频| 美女写真久久影院| 鲁大师精品99久久久| 97久久精品人人做人人爽| 有码在线播放| 国产在线观看91精品一区| 日本中文字幕在线观看| 免费观看视频www| 91九色鹿精品国产综合久久香蕉| 蜜桃福利午夜精品一区| 日本视频一区二区不卡| 91免费国产在线观看| 亚洲激情中文1区| 中文字幕成人免费视频| 国产va在线| 麻豆成人综合网| 郴州新闻综合频道在线直播| 久久久精品免费| 一个色综合导航| 99爱精品视频| 国产精品10p综合二区| 在线视频1区2区| 日本免费中文字幕在线| 97超级在线观看免费高清完整版电视剧| 国产精品你懂的在线欣赏| 成人毛片18女人毛片| 阿v天堂2018| 四虎影院免费在线| 久久一级黄色片| 97在线视频人妻无码| 91超碰免费在线| 日韩电影在线观看一区二区| 一区二区三区av电影| 国产午夜精品一区二区理论影院| 色婷婷综合五月| 在线观看你懂的视频| 久久精品视频导航| 91精选在线| 国产精品av一区二区| 国产一级二级在线| f2c人成在线观看免费视频| 亚洲精品高清视频在线观看| 亚洲少妇中文字幕| 国产在线视频三区| 特级西西人体4444xxxx| 一区二区成人| 夜级特黄日本大片_在线| 一区二区三区91| 午夜视频一区二区在线观看| 久久久久久香蕉| 国产伦精品一区二区| 青青草原国产在线视频| 精品国产一区二区三区成人影院| 91午夜伦伦电影理论片| 欧美国产日产图区| 日韩在线视频免费播放| 一区二区视频国产| 在线观看视频二区| 久久精品免视看国产成人| 国产精品亚洲综合色区韩国| 久久精品超碰| 国产精品偷乱一区二区三区| 公侵犯人妻一区二区三区| 美女福利视频一区二区| av在线免费一区| 91看片在线免费观看| 97在线观看免费观看| 欧美极品少妇无套实战| 欧美激情精品久久久久久黑人| 国产一区二区三区在线观看视频| 亚洲色图另类图片| 欧美午夜丰满在线18影院| 久久人体做爰大胆| 国产91精品最新在线播放| 在线观看欧美理论a影院| 青娱乐精品视频在线| 国产精品第108页| 国产原创popny丨九色| 免费能直接在线观看黄的视频| 亚洲 国产 欧美 日韩| 色涩视频在线观看| 久久国内精品一国内精品| 中文字幕第99页| 国产亚洲精品美女久久| 国产特级淫片免费看| www.久久成人| 国产人妻精品一区二区三区不卡| 国产69精品久久久久9| 成人性色生活片| 欧美日韩一区三区四区| 老司机午夜免费精品视频| 日韩精品一线二线三线| 久久久久久9999| 九九精品视频在线| 成人春色在线观看免费网站| 懂色av一区二区三区四区五区| 亚洲国产精品日韩专区av有中文| 99精品一区二区三区| 国产白浆在线观看| 色哟哟精品视频| 99视频高清| 超碰成人久久| 福利小视频网站| 色婷婷av一区二区三区丝袜美腿| 精品成人在线视频| 18在线观看的| 亚洲毛片在线看| 91免费精品国偷自产在线在线| 日韩国产精品一区| 精品少妇v888av| 麻豆精品久久久| 久久久久久久久久影院| 中国特级黄色片| 欧美成人手机在线视频| 亚洲日韩视频| 欧美日韩免费一区| 天堂视频在线免费观看| 人成网站在线观看| 手机av免费看| 欧美日韩一区二区三区在线观看免| 中文字幕在线永久在线视频2020| 国产网站av| 亚洲一区精品在线观看| 91国内精品野花午夜精品| 日韩国产欧美| 欧洲亚洲一区二区三区四区五区| 亚洲欧美日韩一区二区三区在线观看| 深夜福利亚洲导航| 超碰人人人人人人人| 香蕉久久一区二区三区| 日韩欧美在线观看一区二区| 国产亚洲亚洲国产一二区| 欧洲成人一区| 黄色在线网站| 日韩一区二区精品在线观看| 91精品国产福利在线观看| 欧美日韩另类图片| 精品国产高清自在线一区二区三区| 亚洲精选视频免费看| 伊人再见免费在线观看高清版| 超碰免费公开在线| 久草资源在线视频| 亚洲综合专区| 精品久久久在线观看| 久久嫩草精品久久久精品| 91精品国产自产精品男人的天堂| а天堂中文最新一区二区三区| 日韩视频中文字幕| 91官网在线免费观看| av不卡在线| 日本视频一区二区在线观看| 污片免费在线观看| 欧美xxxxx少妇| 日韩av一级大片| 亚洲一区二区三区观看| 大杳蕉精品视频在线观看| 欧美夫妻性生活| 欧美日韩第一视频| jizzjizz.con| 午夜影视日本亚洲欧洲精品| 国产99久久精品| 一区二区高清不卡| 亚洲在线观看免费视频| 日韩电影中文 亚洲精品乱码| 欧美大片va欧美在线播放| 亚洲日本成人在线观看| 日韩欧美在线中字| av官网在线播放| 日日噜噜噜噜久久久精品毛片| 在线香蕉视频| 国产午夜视频| 国产亚洲精品网站| 网曝91综合精品门事件在线| 圆产精品久久久久久久久久久| 亚洲女同一区二区| 在线观看欧美日韩电影| 国产精品免费视频xxxx| 美国十次了思思久久精品导航| 久久综合亚洲色hezyo国产| 中文在线中文资源| www.av免费| 欧美贵妇videos办公室| 免费国产黄色网址| 成人国产精品一区| 国产精品午夜av| 国产一区二区毛片| 国产成人精品999在线观看| 国产成人综合亚洲欧美在| 91精品免费在线| 色妞色视频一区二区三区四区| 精品裸体舞一区二区三区| 亚洲最大福利视频网| 香蕉久久免费电影| 欧美精品免费在线| 国产成人免费xxxxxxxx| 91在线视频在线观看| 欧美三级一区二区三区| 亚洲国产一区二区三区| 欧美变态tickling挠脚心| 羞羞答答成人影院www| 国产8mav视频| 天堂一本之道| 欧美精品videossex变态| 偷偷操不一样的久久| av在线亚洲男人的天堂| 男人天堂av片| 久久久久88色偷偷| www.豆豆成人网.com| 99re视频这里只有精品| 欧美 日韩 精品| 精品少妇一区二区三区在线视频| 日产乱码一卡二卡三免费| 成人黄色免费在线观看| 婷婷久久综合九色综合伊人色| 99精品国产99久久久久久白柏| 国产日本视频| h网站视频在线观看|