linux创建动态库

本文详细介绍了在Linux环境下如何创建和使用动态库,包括静态库与动态库的区别,动态库的编译过程,以及在应用程序中链接动态库的方法,帮助开发者更好地理解和操作动态库。
摘要由CSDN通过智能技术生成

静态库的创建和使用:

- g++ add.cpp生成add.o目标文件
- ar cqs libadd.a add.o
	- ar打包目标文件(elf中的relocatable文件)
	- 静态库的名字lib[static_library_name].a

- 链接静态库.
- g++ main.c -L . -ladd
- 静态库的链接语法和动态库基本语法一致.

动态库的创建和使用:

- g++ -fPIC -shaerd add.cpp -o libadd.so
	- shared library的名字格式:lib[name].so
- 动态库的使用.
- g++ main.c -L . -ladd
- 记得增加链接搜索路径。

	- error常见解析:
		- cannot find -ladd
			- 出现这种错误是因为在编译链接动态库的时候找不到该动态库,即没有指定编译时的搜索路劲
			- 解决方案见<动态库的链接>
				[root@VM_0_9_centos dynamic_lib_text]# ls
				add.c  add.h  add.o  libadd.so  main.c
				[root@VM_0_9_centos dynamic_lib_text]# g++ main.c 
				/tmp/ccBAOjnr.o: In function `main':
				main.c:(.text+0x13): undefined reference to `add(int, int)'
				collect2: error: ld returned 1 exit status
				[root@VM_0_9_centos dynamic_lib_text]# 

		- undefined reference to `add(int, int)'
			- 编译时通过 -l指定了动态库,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值