Linux 动态库,静态库

静态库:格式必须为lib**.a (以lib开头,.a结尾的文件)

1.编译生成.o文件:gcc -c add.c main.c

2.创建静态库:ar crv libfoo.a add.o main.o

3.使用静态库:gcc -o main main.c -L . -l foo (-L后跟可执行文件所在路径,-l后跟除了lib开头,.a结尾的文件名,main为可执行文件)

 

动态库(共享库):格式为lib**.so

生成.o文件:gcc -c add.c mul.c

创建动态库:gcc -shared -fPIC -o libfoo.so add.o mul.o

动态库要放在/lib或/usr/lib路径下

使用动态库方法1:gcc -o main main.c -lfoo (可执行文件在当前路径下-L可省略)

使用动态库方法2:修改环境变量使得动态链接路径由原来的/lib或/usr/lib改为自定义路径

环境变量

修改环境变量:export LD_LIBRARY_PATH=. (改为当前路径)

查看环境变量的值:echo $LD_LIBRARY_PATH

删除环境变量:unset LD_LIBRARY_PATH

ldd命令:查看可执行文件使用的动态库

 

动态库和静态库的区别:

静态库在链接是把要用到的方法包含到最终生成的可执行程序中

动态库不包括,只做标记。程序运行时才动态加载,所以动态库体积小

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值