树莓派linux系统学习静态库与动态库

6 篇文章 0 订阅
5 篇文章 1 订阅

linux静态库
静态函数库是在程序执行前就加入到目标程序中去了
优点:运行快
缺点:占内存
linux动态库
动态函数库,是在程序执行时动态由目标程序去调用
优点:占内存小
缺点:运行慢
静态库的制作
a,gcc 功能函数.c -c 生成功能函数.o文件
gcc func.c -c
b,ar rcs xxxx.a 功能函数.oxxxx.a就是要生成的静态库文件名字随便取

ar rcs libfunc.a func.o

使用静态库

 gcc main.c -lfunc -L ./ -o test

此时已经生成test的可执行文件
其中-l为在系统默认文件夹下寻找文件-L为在当前文件夹寻找.a文件,要把静态库文件砍头去尾
只需要把.o文件和.h文件发给他
动态库的制作

gcc -shared -fpic func.c -o libfunc.so

-shared为指定生成动态库

-fpic为fpic选项作用于编译阶段,在生成目标文件时就得使用该选项以生成目标文件时就得使用该选项以生成位置无关的代码
libfunc.so为生成的动态库

 gcc main.c -lfunc -L ./ -o dt

和静态库是一样的要把动态库文件砍头去尾,此时会报错,因为找不到动态库文件。简单的解决办法就是写一个脚本start.sh,当我们在配置环境变量的目录时,我们用冒号(:)来分割这些目录途经

export LD_LIBRARY_PATH="/home/pi/linx"//LD_LIBRARY_PATH环境变量宏定义
///home/pi/linx动态库文件位置
./dt//生成的可执行文件

最后给start.sh加可执行权限

chmod +x start.sh

运行start.sh就可以执行该程序了
如果不想写shell脚本文件我们直接把我们所生成的库文件粘贴到/usr/lib下就可以了(不推荐使用该方法)

师上官可编程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值