美文网首页
库的制作

库的制作

作者: 不合格码农 | 来源:发表于2019-01-09 10:16 被阅读5次

一、.静态库的制作

    1.命名规则

    (1)lib + 库的名字 + .a

    (2)libaytest.a

    2.制作步骤

    (1).生成对应的 .o 文件 *.c *.o -c

    (2).将生成的 .o文件打包 ar rcs + 静态库的名字(libMytest.a) + 生成的所有的 .o

    3.发布和使用静态库

    (1).发布静态库

    (2).头文件

eg:

gcc main.c -Iubclude -L lib -l MyCalc -o myapp

 -Iubclude :头文件的位置

-L lib:静态库的位置

-l MyCalc:指定静态库。

静态库的优点:

1.发布程序的时候,不需要提供对应的库。

2.加载库的速度快。

缺点:

1.库被打包到应用程序中,导致库的体积很大。

2.库发生了改变。需要重新编译程序。

二、共享库的制作

    1.命名规则

    (1). lib + 名字 + .so

    2.制作步骤

    (1).生成与位置无光的代码。(生成与位置无关的  .o,因为是动态库,所以位置不定。)

    eg: gcc  -fPIC  -c  *.c  -I../include

            gcc  -shared  libMyCalc.so  *.o  -Iinclude

    (2)将 .o 打包成共享库(动态库)

    3.发布和使用共享库

    4.解决程序执行时动态库无法被加载的问题。

    (1)放到系统的库目录中---不允许使用

    (2)临时测试

                环境变量:LD_LIBRARY_PATH, 将动态库的路径设置给改变量。

                 将设置的值,导入到系统环境变量中:export LD_LIBRARY_PATH

                 关闭终端,设置会失效。

    (3)不常使用的方法(永久设置):

                 在家目录的 .bashrc 文件 中加一句话: export LD_LIBRARY_PATH = 动态库目录的绝对路径。

                .bashrc 修改完成,需要重启终端。

    (4)

                1.需要找动态连接器的配置文件 ------   /etc/ld.so.conf

                2.动态库的路径写到配置文件中 -------  绝对路径

                3.更新  ----   sudo ldconfig  -v    

    5.优缺点:

        优点:

                1.执行程序体积小

                 2.动态库更新了,不需要重新编译,函数的接口不变。

        缺点:

                1.发布程序的时候,需要将动态库提供给用户。

                2.动态库没有被打包到应用程序中,加载速度相对较慢。

相关文章

  • 制作Pod库

    目录 一、公有Pod库制作 二、私有Pod库制作 三、subspec子库的制作 四、遇到的坑 一、公有Pod库制作...

  • iOS小知识 -- 静态库(一)

    静态库静态库的介绍.a静态库的制作以及测试静态库的架构问题.framework静态库的制作以及测试边开发边制作静态...

  • 制作cocoapods私有仓库(一)依赖库制作

    前言制作cocoapods私有仓库 首先是依赖库的制作,然后才是cocoapods私有仓库的制作 依赖库的制作的制...

  • iOS:CocoaPods制作私有库

    本章制作私有库方法省去了繁琐的Pod校验,快速简单制作私有库。 创建索引库 我使用的是GitHub 制作Pod 再...

  • 库的制作

    一、.静态库的制作 1.命名规则 (1)lib + 库的名字 + .a (2)libaytest.a 2....

  • iOS动态库、静态库及使用场景、方式

    前面介绍过制作过程,这里不讲如何制作动态库、静态库。 静态库和动态库都是以二进制提供代码复用的代码库。 静态库常见...

  • 静态库学习(三)

    一、framework的制作.framework的静态库制作和.a静态库的制作有三个不同的地方,其他基本一致。 1...

  • 静态库学习(三)

    一、framework的制作.framework的静态库制作和.a静态库的制作有三个不同的地方,其他基本一致。 1...

  • 11-静态库的制作

    本着尊重原作者的态度,关于静态库及动态库的制作,请参考jianshu 本篇文章主要是制作静态库以及动态库的方法 一...

  • iOS-静态库&动态库

    静态库和动态库的区别,网上已经有很多文章了,这里就不做介绍了,本文主要讲下如何制作对应的库。 静态库制作: .a文...

网友评论

      本文标题:库的制作

      本文链接:https://www.haomeiwen.com/subject/biwurqtx.html