美文网首页
C 静态库和动态库

C 静态库和动态库

作者: 悟剑声 | 来源:发表于2016-08-10 05:17 被阅读37次

存在文件

  • a.c b.c all.h main.c

静态库

linux以.a为后缀,win下lib为后缀

  • 生成a.o b.o
    gcc -c a.c b.c

  • 生成静态库testa,命名方式为lib开头,“.a”结尾
    ar crs libtesta.a a.o b.o

  • 生成a.out
    gcc main.c -L. -ltesta

动态库

linux以.so为后缀,win下以.dll为后缀

  • 生成a.o b.o,位置无关的代码(Position Idpendent Code, PIC)
    gcc -c -fPIC a.c b.c

  • 生成静态库testb
    gcc -shared -o libtestb.so a.o b.o

  • 生成a.out
    gcc main.c -L. -ltestb

  • 直接运行时,可能找不到链接库
    cannot open shared object file: No such file or directory,解决办法有下面几种
    <ol>
    <li>添加变量LD_LIBRARY_PATH来指定首先搜索库的路径
    export LD_LIBRARY_PATH=动态库的所在路径
    打印变量使用echo,删除变量使用unset
    </li>
    <li>用ln将需要的so文件链接到/usr/lib或者/lib这两个默认的目录下边
    ln -s 动态库名 /usr/lib
    </li>
    <li>修改/etc/ld.so.conf,然后刷新
    vim /etc/ld.so.conf
    add 动态库路径
    sudo ldconfig
    </li>
    </ol>

相关文章

  • iOS 静态库和动态库的制作

    静态库和动态库 一、静态库和动态库的存在形式 静态库: .a 和 .framework 动态库: .dylib 和...

  • 动态库 静态库

    C++静态库与动态库

  • 静态库和动态库

    静态库和动态库的存在形式静态库:.a 和 .framework动态库:.dylib 和 .framework 静态...

  • QT中dll的生成及使用

    C++中的库分为三种:静态库、动态库和导入库 1、静态库:     静态库扩展名为.lib,静态链接(即代码会直接...

  • Java 调用本地代码库

    什么是动态链接库 C/C++编译出来的库有两种:静态链接库和动态链接库。 静态库后缀名在Windows上是.lib...

  • Swift 静态库调研

    一、关于库的背景知识1、静态库和动态库静态库动态库系统动态库Cocoa Touch Framework静态库 v....

  • iOS 静态库封装

    静态库和动态库 静态库和动态库存在形式 静态库:以.a 和 .framework为文件后缀名。 动态库:以.tbd...

  • 静态库与动态库区别

    本文动态库、静态库区别部分转载自C++静态库与动态库 程序的编译过程如上图 静态库: 之所以成为【静态库】,是因为...

  • iOS-SDK从无到有

    A、关于静态库和动态库 静态库:.a和.framework ,动态库:.dylib和.framework。.fra...

  • 自定义三方SDK静态库、.framework

    静态库和动态库的存在形式 静态库: .a 和 .framework动态库: .dylib 和 .framework...

网友评论

      本文标题:C 静态库和动态库

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