《Linux下静态库与动态库的制作》

不管是静态库还是动态库,其本质都是源文件。
一、静态库

**1、**首先编写需要制作静态库的.c源文件和头文件
简单举例如:编写两个源文件分别是:add.c和sub.c。add.c中实现一个函数,返回两个整形数的相加;sub.c文件中实现两个整形数相减的函数。
另外编写mylib.h头文件,写入两个源文件中所定义函数的声明。

**2、**然后使用gcc进行汇编,生成二进制文件.o结尾
gcc -c add.c sub.c
通过上面的命令生成 add.o与sub.o两个文件

**3、**使用ar命令打包第二部生成的.o文件生成以lib开头,以.a结尾的静态库文件libmyfun.a
ar rcs libmyfun.a add.o sub.o
注意:rcs是ar的运行参数,libmyfun.a是要生成静态库的名字,自己指定,但要以lib开头,以.a结尾。

二、动态库
1、同静态库步骤1。

2、使用gcc进行汇编,生成二进制文件.o结尾
gcc -c -fpic add.c sub.c
注意:这里想比制作静态库步骤2 多了-fpic
3、使用gcc命令进一步打包动态库文件
gcc -shared add.o sub.o -o libmyfun.so

**三、在使用使用自己制作的动态库编译可执行程序时,编译链接都没错,但是运行时,会出现找不到库文件的情况,**这是因为执行时搜索路径没有指定,默认的搜索路径并没有包含自己制作的动态库文件,所以在使用自己制作的动态库编译可执行文件时,可以添加 “-Wl,-rpath=.” 指定运行时的路径,或者把制作的动态库放到默认搜索路径下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值