`
miss大为
  • 浏览: 82524 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iPhone静态库学习笔记

 
阅读更多

 

一.基本知识

在实际的编程过程中,通常会把一些公用函数制成函数库,供其它程序使用,一则提搞了代码的复用;二则提搞了核心技术的保密程度。所以在实际的项目开发中,经常会使用到函数库,函数库分为静态库和动态库两种。和多数人所熟悉的动态语言和静态语言一样,这里的所谓静态和动态是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库;而动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在。

对iPhone平台来说,iPhone官方只支持静态库联编,因此下面就介绍下iPhone中静态库的用法。

二.iPhone静态库使用

1.创建静态库

打开XCode新建一个项目,选择Library下的 “Cocoa Touch Static Library”,在Classes文件夹上点右键选择“New File…”,然后在“Cocoa Touch Class”下选择“Objective-C class”,这样就可以创建Objective-C风格的源文件和头文件。

同样,也可以创建C或者C++风格的代码,在Classes文件夹上点右键,选择“New File…”,这次选择Mac OS X下的“C and C++”,就行。

然后在文件里编写具体的调用代码。

最后进行编译,就会产生一个以.a为结尾的文件,就是我们需要的静态库。同时我们也需要生成的.h头文件。

2.使用静态库

在需要调用静态库的工程的目录下通过右键点 Frameworks->Add->Existing Files..添加之前创建的.a静态库文件,然后在需要调用静态库的函数的.h文件里,import进来和静态库中.m对应的.h头文件,并且声明静态库里的类:@class 类名,这样就可以使用静态库里的函数了。

3.联调静态库

如果单单以copy的方式包含进.a静态库,这样只能使用静态库,如果需要修改静态库里的函数,则需重新生成静态库,并将其重新包含进来,在开发阶段会显得比较麻烦。可以采用Xcode的Cross-Project Reference(跨项目参考)的方式解决。

首先把静态库的XCode项目整个包含进我们的当前项目(注意:不要选择Copy items to destination group's folder选项)。

接着和第二步一样也是包含进.a静态库(也要注意:不要选择Copy items to destination group's folder选项)。

这样就可以从我们当前的项目里直接打开静态库的项目,直接修改(注意:修改后编译前必须选择clean,清除原有的静态库,重新生成)。

参考资料:http://www.xuanyusong.com/archives/606
分享到:
评论

相关推荐

    iphone添加静态库编译教程

    ### iPhone添加静态库编译教程 #### 一、前言 在iOS开发过程中,静态库是一种常见的代码重用方式。由于苹果官方禁止在iPhone应用中使用外部框架或动态链接库,因此静态库成为了代码复用的最佳选择之一。本文将详细...

    iOS静态库制作实例

    在iOS开发中,静态库(Static Library)是一种常见的代码复用方式,它可以将多个源文件编译链接成一个单独的库文件,应用在项目中时,会与目标应用一起被编译并打包到最终的可执行文件中。本实例主要探讨如何制作...

    iOS静态库项目的创建和使用源码

    在iOS开发中,静态库(Static Library)是一种常见的代码复用方式,它可以将一组相关的代码编译成一个单独的文件,供多个项目共享。本文将详细介绍如何创建和使用iOS静态库,并提供源码示例。 一、静态库的创建 1....

    iOS-Xcode制作静态库

    在iOS开发中,Xcode制作静态库是一种常见的技术实践,它可以帮助开发者封装代码,提高代码重用性,减少项目体积,提升应用性能。本篇将详细介绍如何使用Xcode创建和使用静态库。 首先,理解静态库的概念至关重要。...

    ffmepg 2 5 3 for iOS静态库 armv7 armv7s i386 x86 64 arm64

    2. **iOS 静态库**:在iOS开发中,静态库与动态库相比,静态库在编译时会被直接链接到应用中,形成一个完整的可执行文件,避免了运行时动态加载库的问题,对于App Store分发的App,静态库可以减少潜在的兼容性问题。...

    银联支付64位静态库, iOS android,

    银联支付64位静态库是为iOS和Android平台提供的一种支付解决方案,它允许开发者将银联支付功能集成到自己的应用程序中。这个静态库,libUPPayPlugin.a,是银联专门为64位架构设计的,确保在最新的移动设备上能够高效...

    protobuf iOS静态库

    本教程将详细介绍如何在iOS平台上编译protobuf 2.6.1版本为静态库。 首先,我们需要从官方仓库下载protobuf的源代码。可以访问protobuf的GitHub页面(https://github.com/protocolbuffers/protobuf/releases)找到...

    xcode 4 制作静态库图文详解

    确保在"Build Settings"中设置正确的架构,例如,对于支持iPhone设备和模拟器,需要包含"Standard architectures",这样编译后的静态库将同时适用于这两种环境。 编译完成后,可以在"Products"目录下找到生成的`.a`...

    IOS 封装静态库Demo

    在iOS开发中,静态库(Static Library)是一种将多个源代码编译成的二进制文件打包在一起的库形式,开发者可以将其集成到项目中,以便复用代码或提供特定功能。静态库在编译时会被直接链接到目标应用程序中,成为...

    Xcode生成动态库和静态库的方法

    ### Xcode生成动态库和静态库的方法 #### 库介绍 在软件开发中,库是一种存储预先编写好的功能集合的方式,这些功能可以被多个程序共享和重用。库分为两大类:静态库和动态库。iOS开发环境中,Xcode支持创建这两种...

    FFmpeg 2.5.3 编译的静态库(arm64 armv7s armv7 x86_64 i386)。

    1. **静态库**:静态库在编译时会被直接链接到目标程序中,形成一个完整的可执行文件,无需在运行时依赖额外的库文件。这使得应用程序更易于分发,但可能会增加最终应用的体积。 2. **arm64、armv7s、armv7、x86_64...

    axureiPhone机型元件库

    对于iPhone元件库,其涵盖了多种iPhone机型,例如iPhone SE、iPhone 6/6S/7/8系列、iPhone X/XS系列、iPhone XR、iPhone 11系列、iPhone 12系列以及iPhone 13系列等。这些模型不仅包括手机的外观,还可能包括屏幕...

    静态库打包shellcmd 文件

    iOS 静态库自动打包,使用 shellcmd 脚本如何写 # 获取脚本所在目录 filepath=$(cd "$(dirname "$0")"; pwd)"/" cd $filepath cd .. # 工程target,主要配置这个target即可 targetname="SafeToolSDK" # 工程目录...

    ios静态库问题

    - 使用Finder打开`build/debug-iphoneos`目录,确认静态库文件`libLibary.a`是否已经成功生成。 #### 四、常见问题及解决方案 1. **静态库构建失败**: - 检查`Build Settings`中的配置是否正确。 - 确保所有...

    基于Xcode4.3的iPhone编程学习笔记 第一篇

    ### 基于Xcode4.3的iPhone编程学习笔记:HelloWorld #### 第一篇:HelloWorld编程 本文档旨在帮助初学者理解如何通过Xcode 4.3环境搭建简单的iOS应用程序,具体以HelloWorld应用为例,从创建工程到运行程序进行...

    axure iphone手机元件库原型库

    iPhone手机元件库是Axure中一个重要的资源集合,它包含了一系列预设的、与苹果iPhone设备相关的组件和控件,使得设计师可以快速构建出符合iOS界面规范的原型。 在"axure iphone手机元件库原型库"中,我们可以找到...

    iPhone开发基础教程_学习笔记

    在iOS开发领域,尤其是针对iPhone应用的开发,掌握基本的技术框架和编程语言是至关重要的。本教程主要聚焦于iPhone开发的基础知识,包括Object-C语言、界面设计和UIViewController的使用。 Object-C是iOS开发的主要...

    ios libjpeg .a静态库

    在压缩包文件"iphone-build"中,可能包含了预编译好的针对iOS设备的libjpeg .a静态库,以及可能的头文件和其他相关资源。为了使用这些库,开发者需要将它们添加到自己的Xcode项目中,并确保项目的架构设置与库相匹配...

Global site tag (gtag.js) - Google Analytics