静态库与动态库的使用

静态库与动态库的使用

https://www.cnblogs.com/sunsky303/p/7731911.html
**在这里插入图片描述
(a)静

在函数执行之前(编译)就加载到目标程序中中去了。
优点:(1)静态库加载到应用程序中加载速度比较快。
(2)发布程序时因为静态库已经在app中,所以比较便捷。
缺点 (1)程序大
(2)链接时完整的拷贝到执行文件中,被多次使用就会有多份冗余拷贝。
(3)更新,部署,发布麻烦。
(b)动态
在函数执行时动态的(临时)由目标程序调用。
优点:(1)程序小.
(2)链接时不复制,程序运行时,由系统调用到内存中供程序调用,系统只加载一次, 多个程序可共享,节省内存。
缺点:(1)与静态库相比的运行较慢.
(2)发布程序时需要提供依赖的动态库。
3.库的制作
静态库的制作 生成XXX.a 文件
(1)生成静态库.o文件
gcc filename.c -c
(2)生成XXX.a文件
rc rcs filenam.a filename.o 用XXX.o 文件生成XXX.a静态函数库文件
动态库的制作 生成 xxx。so文件
gcc -shared -fpic filename.c -o libfile.so
shared指定生成动态库
fpic,在目标程序编译的时候使用,生成位置无关的代码。
库的使用
静态库的使用
gcc mainfile.c -lfilenam -L ./ -o filejintaiku
-lfilenam是静态库名,-l是指定要用的动态库名,静态库名砍头去尾.
-L是指定查找动态库的路径,默认路径是usr/lib 或 usr/local/lib
动态库的使用指定有效路径
https://www.cnblogs.com/progamming/p/13043652.html
如果想用改变环境变量的的方法,并且永久的使用动态库,可以写一个脚本
脚本start.sh
export LD_LIBRARY_PATH=”LD_LIBRARY_PATH:/opt/”
./filedongtaiku

               chmod   +x    start.sh      让脚本可以执行
               gcc      mainfile.c   -lfile     -L./   -o    filedongtaiku
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值