linux库文件

windows静态库文件扩展名.lib 动态库文件扩展名.dll

linux 静态库.a 动态库.so  

都是将函数封装在一起编译后供自己或他人调用,好处是编译后的库文件看不带源代码,可以保密

linux库文件一般存在  /lib 和/usr/lib   64位下也有可能存在 /usr/lib64 下

linux库有两种 一种静态库lib**.a 一种共享库lib**.so

lib**.a 静态库 => 链接阶段 =>  复制一份到 可执行程序内部

lib**.so  共享库  => 链接阶段 =>   标记库的位置然后使用的时候调用 

静态库是多个.o文件打包

ar命令 将所有的.o文件打包成静态库

c是创建库     v是详细过程

静态库创建

先写好函数文件,用gcc -c 加函数文件 编译成.o文件 然后用ar crv libfoo.a +文件名.o+文件名.o命令将所有的.o 文件打包到libfoo.a 中,将所有的函数声明写进一个头文件中,将头文件和打包好的lib**.a 文件放进同一个文件夹里,写进一个main函数,然后编译链接 gcc -o main main.c -L.(接当前文件夹) -l(链接哪个**库文件) foo

创建共享库:

生成.o以后,gcc -shared -fPIC -o libfoo.so min.o max.o 

需要把生成的libfoo.so共享库移动到 /usr/lib 位置  sudo mv libfoo.so  /usr/lib

然后再gcc -o main main.c -lfoo  直接使用   

静态库和动态库的区别: 1.静态库在连接时将所用到的函数包含到最终生成的可执行程序中;共享库不会被包含到可执行文件中,只做标记,在运行程序才动态加载,所以共享库体积小

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值