`

[转]使用静态链接库(static library)

 
阅读更多

 

搞了一天静态链接库,终于搞得明白了些,网上用xcode4制作静态链接库的资料大多比较粗糙,所以写篇文章把经验分享给大家。

静态链接库适用于:

1.你想将一部分以后都不会修改的代码打包,供其他项目使用

2.你想将一部分代码封装起来给别人用,又不愿别人看到你的实现方法

如何制作静态链接库(以下简称lib):

1。如果是新工程。创建工程的时候选Framework&Library -> cocoa touch static library,就直接创建了一个静态链接库工程,默认会有两个跟工程名相同的.h和.m,继续添加文件,m都会自动加入到Build Phases->Compile Source中,表示这些代码会被编译进lib中,你可以删掉你不希望被编译的。

2. 如果是项目工程,想抽取一个lib出来,就add target,也是选Framework&Library -> cocoa touch static library。在xcode navigator里会多一个文件夹,和你新创建的target同名。同样,你可以在Build Phases->Compile Source里,添加你希望加入到lib中的文件。

在编译之前,在target的scheme中选build configuration为release(debug貌似只能用于调试)。然后编译。

注意,你用device模式编译出的lib只能真机运行,模拟器模式编译出的lib只能用于模拟器调试。然后找到编译出lib,复制到需要它的工程里。

如果你希望一个lib既可以在模拟器上运行,又可以在真机上运行,那就各编译一次吧,把两个lib都找到,用命令把两个lib合并成一个,命令是:lipo -create sim.a dev.a -ouput lib.a 合并产生的lib.a就可以两用了。

把lib和新工程里需要引用的头文件都添加进新工程,这样就可以了。

可能遇到的问题:

1.找不到头文件。你没把要用的头文件从lib工程里复制到新工程

2.链接错误。检查编译lib时用得device模式还是模拟器模式,现在运行模式是否一致;你使用的类的m文件在lib工程里是否加入到Build Phases->Compile Source中

分享到:
评论

相关推荐

    静态链接库的使用

    静态链接库(Static Link Library)是一种预先编译好的代码集合,可以在多个项目中复用。与动态链接库(Dynamic Link Library, DLL)不同,静态链接库在编译阶段就会被链接到目标程序中,成为可执行文件的一部分。...

    c++ 静态链接库动态链接库示例

    **静态链接库(Static Linking Library)** 静态链接库是编译器在生成可执行文件时,会将库中的函数和数据直接嵌入到目标代码中。因此,生成的可执行文件体积较大,包含了所有依赖的库函数。这种方式的优点是无需在...

    静态链接库学习(VS2010)

    静态链接库(Static Library)是一种将函数和数据编译进可执行程序的库文件形式。当编译器构建最终的可执行文件时,它会将静态库中的代码“复制”到目标程序中,使得程序在运行时不再需要外部的库文件。这使得程序更...

    C++ 静态链接库与动态链接库

    链接库分为静态链接库(Static Library)和动态链接库(Dynamic Link Library,简称DLL)。这两种库各有其特点和适用场景,下面我们将深入探讨它们的创建过程、工作原理以及它们在实际项目中的应用。 **静态链接库*...

    静态链接库与动态链接库的区别

    在软件开发过程中,经常需要使用到库文件,这些库文件可以分为两大类:静态链接库(Static Library)和动态链接库(Dynamic Library)。这两种库的主要功能都是为了重用代码,减少代码重复编写的工作量,提高软件的...

    静态链接库

    在编程世界中,静态链接库(Static Linking Library)是一种重要的软件开发资源,它允许开发者将预先编译好的函数和类集合打包到可执行程序中。这样,当用户运行程序时,无需依赖外部的库文件,因为所有必要的代码都...

    静态链接库和动态链接库

    库大致可以分为两大类:静态链接库(Static Library)和动态链接库(Dynamic Library)。本文旨在深入探讨这两种类型的链接库的特点、应用场景以及使用方法。 #### 二、静态链接库 ##### 2.1 定义与原理 静态链接...

    VC++6 编写静态链接库和调用静态链接库源码下载

    本资源"VC++6 编写静态链接库和调用静态链接库源码下载"主要针对VC++6.0开发环境,提供了学习如何创建和使用静态链接库的实例。 1. **编译静态链接库**: 在VC++6中,创建静态链接库涉及创建一个新项目,并选择"Win...

    动态链接库与静态链接库 的区别

    链接库大致可以分为两大类:静态链接库(Static Library)和动态链接库(Dynamic Link Library,简称DLL)。本文将深入探讨这两类链接库之间的差异及其应用场景。 #### 静态链接库(Static Library) 静态链接库是...

    动态链接库及静态链接库(windows下的.dll .lib和linux下的.so .a).docx

    静态链接库(Static Link Library,LIB)是一种在编译时被链接到程序中的库文件。在Windows下,静态链接库的文件后缀为.lib,而在Linux下,静态链接库的文件后缀为.a。静态链接库的主要特点是将库文件的代码和数据...

    linux qt 动态链接库 静态链接库.pdf

    使用静态链接库时,需要在编译时指定 `-static` 选项,以生成静态链接库文件。例如: ```bash ar rcs libmyhello.a hello.o ``` 在 Qt Creator 中,可以在 `.pro` 文件中添加以下代码以使用静态链接库: ```makefile...

    动态链接库和静态链接库区别

    动态链接库(Dynamic Link Library, DLL)和静态链接库(Static Link Library, SLB)是Windows操作系统中两种常见的库文件类型,它们在程序编译和运行时起着至关重要的作用。理解二者的区别有助于我们更好地进行软件...

    linux qt 动态链接库 静态链接库.docx

    静态链接库(Static Link Library,LIB)是一种在编译时链接到应用程序中的库文件。静态链接库的优点是可以减少依赖关系,提高应用程序的可靠性和安全性。 在 Linux 平台上,我们可以使用以下命令来生成静态链接库...

    静态库、动态库开发StaticLibrary.zip

    在软件开发中,库是一种非常重要的资源,它们封装了常用的功能,使得开发者可以复用代码,提高开发效率。...通过本教程提供的StaticLibrary.zip文件,你可以实践这两个库类型的创建和使用,加深理解。

    静态链接库Ex110102

    在编程世界中,静态链接库(Static Link Library, 简称SLL)是一种非常重要的概念,尤其是在使用C++或C语言开发时。本资源"静态链接库Ex110102"可能是针对VC++(Visual C++)环境的一个教学实例,用于解释如何创建、...

    创建静态链接库源码例子

    在编程领域,静态链接库(Static Library)是一种将多个源代码编译成的函数和类集合,用于在程序编译时直接嵌入到目标代码中。这样,运行时就不需要外部的库文件,使得程序更加独立。本教程将通过一个实际的例子,...

    clapack动态链接库和静态链接库

    这里的“动态链接库”(Dynamic Link Library, DLL)和“静态链接库”(Static Library)是指软件开发中的两种不同链接方式。 动态链接库允许程序在运行时加载库功能,而静态链接库则是在编译时将库代码合并到应用...

    动静态链接库制作.rar

    链接库分为动态链接库(Dynamic Link Library, DLL)和静态链接库(Static Link Library, SLB),这两种库各有其特点和应用场景。本资源"动静态链接库制作.rar"提供的是关于如何创建和使用这两种链接库的示例。 一...

    静态链接库例子(lib)

    在编程领域,静态链接库(Static Link Library, 简称LIB)是程序开发中常见的组件形式之一。静态链接库是将多个目标文件合并到一起,形成一个单一的可执行文件,使得在运行时不再需要单独的库文件。本例子旨在帮助...

Global site tag (gtag.js) - Google Analytics