gcc 动态库的编译和使用

1.制作出来的库,如何给用户使用?

头文件 *.h
制作出来的库 *.so

2.动态库的命名规则(三部分)

lib + 自定义库的名字 + .so

3.制作动态库的步骤

1 将.c文件生成.o
		[语法]  gcc .c文件(原材料) -c -fpic(fPIC)
				gcc  *.c [-I ./include]  [-c]  [-fpic(fPIC)]
2 使用gcc -shared,将.o文件打包,生成libXXX.so
				gcc  [-shared *.o]  [-o libXXX.so]

4.动态库的使用

生成可执行文件
gcc main.c -I ./include/ -L ./lib/ -lmycalc -o app    
	-L  指定静态库的路径
	-lXXX   XXX指定静态库的名字

5. 为什么程序编译完成了之后,运行时确找不到so库呢

使用ldd命令查看,运行时所需要链接的so库

6. 如果找不到就需要配置so库路径

1)export LD_LIBRARY_PATH=自定义动态库的路径
(只能起到临时作用,关闭终端后失效)
LD_LIBRARY_PATH : 指定查找共享库(动态链接库)时除了默认路径之外的其他路径,该路径在默认路径之前查找

2)将上述命令写入home目录下的.bashrc文件中,保存后重启终端生效(永久)

3)直接将动态库拷贝到user/lib的系统目录下(强烈不推荐!!)

4)将libmy.so所在绝对路径追加入到/etc/ld.so.conf文件,使用sudo ldconfig -v 更新
 

7、实测

1、gcc -fPIC -c *.c -I ../include

2、gcc -shared *.o -o libMyCalc.so -I ../include

3、mv libMyCalc.so ../lib

4、gcc main.c -o app -L lib -l MyCalc -I include

5、ldd app

6、export LD_LIBRARY_PATH=./lib


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值