• 如何制作.a静态库?合成多架构静态库?


    08_01静态库

      计算机生成了可选文字:
静 态 库 和 动 态 库 
· 静 态 库 和 动 态 库 的 存 在 形 式 
0 静 态 库 : 、 a 和 framework 
0 动 态 库 : .dYlib 和 framework (iOS9 取 消 了 . ib , 使 用 d 替 代 ) 
· 静 态 库 和 动 态 库 在 使 用 上 的 区 别 
。 静 态 库 : 链 接 时 , 静 态 库 会 被 完 整 地 复 制 到 可 执 行 文 件 中 , 被 多 次 使 用 就 有 多 
份 冗 余 拷 贝 ( 左 图 所 示 ) 
0 动 态 库 : 链 接 时 不 复 制 , 程 序 运 行 时 由 系 统 动 态 加 载 到 内 存 , 供 程 序 调 用 , 系 
統 只 加 载 一 次 , 多 个 程 序 共 用 , 节 省 内 存 ( 右 图 所 示 ) 
系 经 
程 序 1 
羼 , 匚 
程 序 2 
. 需 要 注 意 的 是 、 
项 目 中 如 果 使 用 了 自 制 
的 动 酾 , 不 能 被 上 传 
到 AppStore

    08_02制作静态库 .a

    1.新建项目com+shift+n:选择Framework&Library.

      计算机生成了可选文字:
Choose a template for your new project: 
Touch 
Cocoa Touch 
Static Library 
iOS 
Application 
Framework & Library 
watchOS 
Application 
Framework & Library 
os x 
Application 
Framework & Library 
System Plug-in 
Other 
Cancel 
Cocoa Touch 
Framework 
Cocoa Touch Static Library 
This template builds a static library that links against the Foundation framework. 
Previous 
Next

    2.下一步. 项目名不能为中文.

    3.编写代码之后.用真机运行.会自动生成一个静态库

      

    4.products文件夹中的.a静态库文件,红色变成黑色.  Show in Finder 该文件夹中会生成一个.a文件

     

      

    5.include文件夹里只有主文件的.h文件. 新建的HMTool.h 需要手动添加.  

    1>可以直接手动拷贝

    2>如图,先在xcode中添加 在运行一次

      

    使用制作的静态库 .a

    1.将整个Debug-iPhoneos文件夹拖入xcode,便可使用.不过仅可选择真机运行. Debug-iPhonesimulator 拖入,才可在模拟器上使用

    2.如果仅将Debug-iPhonesos文件夹拖入xcode,真模拟器运行,会报错.崩溃如图.

    静态库的架构不对.

      

    3.导入了Debug-iPhonesimulator,在模拟器上运行还报错说明模拟器的版本不对

      

    4.报错总结以及模拟器的架构:

      

    补充: 1.查看静态库的架构

      

    2.报错:终端里cd 正确的文件路径,找不到里面的文件夹

      

      

    08_04合成多架构静态库

      计算机生成了可选文字:
4 · 合 成 多 个 本 架 的 
臠 求 : 合 感 & 拟 器 所 籌 要 的 全 剖 架 
方 式 一 : 使 用 合 令 lipo 吣 at 静 态 毒 1 . a 齡 态 厍 2 . a —Output 新 套 , . a 
方 式 二 : 设 鬢 译 当 前 架 构 为 0 { 只 针 对 欞 器 / 真 机 , 
如 鬻 要 合 并 真 机 的 鼾 有 架 构 以 及 棂 拟 的 厮 有 架 构 , 使 鬲 方 式 一 合 成 
臠 求 : 合 成 5 释 架 嗨 
{ 友 5 中 构 首 先 合 感 拟 的 2 种 嗨 · 
再 合 成 賈 机 的 1 种 架 构 · 在 讲 两 个 絮 构 合 成 , 
合 成 之 后 · 只 有 圈 种 架 构 · 缺 少 arm 丷 , 
amv7S 这 个 梅 · 在 20M 年 10 月 份 的 Xcode 更 籃 中 , 取 消 了 戮 认 鑰 出 · 如 鼕 想 翰 出 , 就 團 配 鬣 手 动 泠 加

    方式一:

      计算机生成了可选文字:
sen$ 
sen$ cd /Users/sen/Library/Developer/Xcode/DerivedData/HeiMaLib—hgsvamdtqlsfmecs 
ydmuq/Build/Products/Debug—iphonesimulator 
sen$ lipo —info libHeiMaLib.a 
input file IibHeiMaLib.a is not a fat file 
Non—fat file: IibHeiMaLib.a is architecture: i386 
sen$ 
Users sen 1 rar Deve oper c e erxve Data 
bkiydmuq/Build/Products 
I-MIOS:Products sen$ lipo reate IibHeiMaLib.a Debu 
I-MIOS:Products sen$ 
effa 1 — 
svam tq s m

    方式二:

      

    手动添加静态库架构:

      

      

      计算机生成了可选文字:
5 · 是 否 需 合 成 静 态 库 的 机 / 拟 { 每 一 释 架 构 会 占 用 一 定 的 大 小 , 
不 合 成 通 用 文 件 : 百 度 文 件 体 积 小 灯 处 : 寶 机 谰 一 定 不 用 楔 器 的 架 构 { 如 鼕 湃 发 邊 到 这 释 问 , 开 发 时 · 先 合 并 , 发 布 时 , 用 真 机 的 架 梅 版 本 , 
合 鬮 用 文 件 : 友 盟 文 件 体 积 大 灯 处 : 是 试 时 不 用 区 分 糞 机 和 攙 拟 器 
6 . Release 和 Debug 的 区 别 
& 该 输 出 lease 恿 本 
b 的 : 有 丰 奮 的 谰 试 句 和 代 当 前 下 会 翰 出 (NSLog 
” 0 : 不 会 有 丰 富 的 试 句 和 代 码 文 件 体 积 会 变 小 · 执 行 度 会 套 快 , 竄 衍 上 俸 鬣 太 大 区 { 对 用 户 嘛 说 无 太 大 影 疇 ,

    08_05图片资源包

    当静态库需要有图片等资源时,不会打包进.a文件中.

    是需要创建一个文件夹.重命名HMTool.bundle,需要用右击显示包内容打开 将图片放入其中.

    将资源bundle .a文件放在同一文件夹中即可. 一起拖入项目中即可使用.

      

    调用HMTool.bundle包种图片方法:

      

  • 相关阅读:
    Windows下MongoDB安装与PHP扩展
    仿Smarty替换模板标签时遇到的问题
    class ha_innobase: public handler
    类handler
    类Item_field
    函数buf_pool_init_instance
    函数buf_pool_init
    安装php,nginx 带debug
    gdb调试SAPI方式的php
    重启php-fpm
  • 原文地址:https://www.cnblogs.com/jiayongqiang/p/5100903.html
Copyright © 2020-2023  润新知