gcc链接动静态库文件

本文详细介绍了如何建立和使用GCC的静态库和动态库,包括静态链接生成可执行文件的方法以及动静态库文件的主要区别。
摘要由CSDN通过智能技术生成


链接分为两种,分别为静态链接和动态链接
库文件分为静态库文件和动态库文件

一.静态库的建立和使用

使用静态库文件链接生成可执行文件的时候,采用静态链接的方式。

1.将要加入静态库的模块编译成目标文件
	gcc -c a.c b.c
2.将目标文件打包到静态库文件中
	ar -r libname.a a.o b.o
3.使用静态库文件链接生成可执行文件
	gcc -c main.c
	gcc main.o -L. -lname
	(-L路径  链接器寻找库文件的路径)  (-l库名  指定要找的库名)

二.动态库的建立和使用

1.将加入动态库的模块编译成目标文件(与位置无关的目标文件)
	gcc -c -fPIC a.c b.c
	-fPIC选项作用于编译阶段,告诉编译器产生与位置无关代码
	(Position-Independent Code),则产生的代码中,没有绝对
	地址,全部使用相对地址,故而代码可以被加载器加载到内
	存的任意位置,都可以正确的执行。这正是共享库所要求的,
	共享库被加载时,在内存的位置不是固定的。
2.将第一步生成的目标文件打包到动态库文件中
	gcc -shared -o libname.so a.o b.o
3.使用动态库链接生成可执行文件
	首先我们要告诉链接器去哪里找动态库文件,有两种方法
		法一:使用LD_LIBRARY_PATH环境变量告诉动态链接器
		export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
		法二:链接器默认的搜索路径是/lib或者/usr/lib
	我们可以用ldd a.out 查看该可执行文件文件加载情况
	gcc main.c -L. -lname
	当执行函数动态链接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值