linux下库文件

linux下库文件以lib开头,随后的部分知名这是什么库(libc.so)

.a 静态函数库 ----类似于Windows下的.lib文件,在链接的时候包含在可执行文件中

.so 共享库----类似于Windows下的动态链接库.dll文件,在程序运行的过程中加载


把源文件scr1.c和scr2.c作成静态库,并在program中使用

1、gcc -c scr1.c scr2.c 编译源文件生成scr1.o scr2.o

2、在一个头文件中声明两个源文件中的函数,设文件名为lib.h,注意在scr1.c和scr2.c中最好包含这个头文件

3、在program.c中包含头文件include "lib.h"

4、打包库文件 ar arv libtest.a scr1.o scr2.o生成libtest.a

5、为函数库生成一个内容表ranlib libtest.a--------------------------其实我也不知道这步有啥用

6、引用库编译链接源程序

方法一:gcc program.c -o program libtest.a

方法二:gcc program.c -o program -L. -ltest   -L.  表示要链接的库在当前路径下

7、./program


生成共享库用以下命令:

编译c程序:
gcc -shared -fpic XXX.c -o XXX.so

编译c++程序:
g++ -shared -fpic XXX.cpp -o XXX.so

但是生成的动态库虽然编译成功了,生成的可执行文件执行时出现cannot open shared object file: No such file or directory

没有解决


用共享库会比静态库生成的可执行文件小

注:以上内容是对《linux程序设计》第一章的整理


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值