linux静态库和动态库

1、区别

        静态库是在运行之前加到程序当中

        动态库是运行时加到程序当中的

2、优缺点:

        静态库:

                优点:  编译时间短、速度快

                缺点:1、编译产生的程序大

                          2、更新麻烦

        动态库:

                优点:1、编译产生的程序小

                          2、更新方便

                缺点:编译的时间长、速度慢

静态库(xxx.a)和动态库(xxx.so)的生成使用:

        1、生成静态库文件:

               材料:主程序:xxx.c(来调用库的主程序) 函数文件:xxx.c(主程序要调用的具体函数)  .h文件:xxx.h(主程序要调用的函数的声明)

               步骤:

                        1、gcc -c xxx.c 生成xxx.o的文件

                        2、ar rcs libxxx.a xxx.o 生成libxxx.a的静态库文件

        2、生成动态库:

               材料:和静态库一样

               gcc xxx.c -fPIC –shared –o 目标文件

               xxx.c 源文件.c文件

               -fPIC 生成位置无关码

        3、使用静态库:

                gcc calculator.c -lcalculfunc -L ./

                -lcalculfunc -l加上静态库去掉lib和.a后缀

                -L ./ 指定在当前目录寻找静态库 若当前目录无此静态库 则在/usr/lib/和/usr/local/lib目录下找

        4、使用动态库

               1、将动态库路径加入环境变量 export LD_LIBRARY_PATH=" xxx "  xxx为动态库的文件路径

               2、编译 gcc xxx.c -lxxx -L ./ (和静态库一样)

补充:

       chmod +x xxx.sh 给脚本文件运行权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值