C---动态库与静态库

C—动态库与静态库

库: 二进制代码的封装

1.能够把自己的代码公开给别人使用,但是不提供源码
动态库: .dll(dynamic link library) .so
运行的时候加载

生成动态库:
1.gcc -shared -fpic -o libwtf.so wtf.c XXX.c

·-shared: 动态库
· wtf.c:源程序
· libXXX.so: 生成文件库的名字

2.把库和头文件给需要的人
3.使用动态库
gcc main.c -o main -lwtf -L.
-lwtf:指定使用wtf这个库(库的全名 libwtf.so)
-L. :指定编译时库的搜索路径在.目录下
-I/mnt/hgfs/02/动态库 :指定头文件所在的路径为:/mnt/hgfs/02/动态

4.运行程序
./main: error while loading shared libraries:
libwtf.so: cannot open shared object file: No such file or directory

错误理由:库是存在的,但是找不到
解决方案:指定运行程序时库的搜索路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/hgfs/…

静态库:
.a编译的时候加载

手动静态库:
1.把源码编译生成.o文件
gcc -c XX.c -o XX.o
2.把所有的.o文件打包生成静态库
ar -rc libXXX.a XXX.o XXX.o
3.把库和头文件给需要的人

4.使用静态库
gcc main.c -o main -lwtf -L.

自动静态库
增加 -static项,会自动打包好静态库到编译的main中,main会很大,占空间,但是很方面
gcc main.c -o main -static

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农-老七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值