库(静态库与动态库)

#笔记

库:也叫代码库,可以把一些目标文件合并在一起方便使用(储存代码)

库分为静态库和动态库

静态库和动态库的区别

静态库  .a 

动态库  .so

用户编译程序:

gcc main.c -o main 动态编译

gcc -static main.c -o main 静态编译

注意:

当库文件在静态库和动态库中各有一份时,动态编译用动态库,静态编译用静态库

静态库

制作方法

gcc -c 源文件名.c -o 生成的二进制文件名.o

ar rc lib静态库名称.a 生成的二进制文件名.o

注意:

        静态库起名的时候必须以lib开头.a结尾

制作流程

step1

编写一个源文件myfun.c

step2

编写他的头文件myfun.h并在其中声明源文件中的函数

按照制作方法制作库文件

使用方法

情况1:使用静态库的文件与静态库在同一文件夹下

        gcc 源文件名 静态库名称 -o 生成的可执行文件名

在同一文件夹下编写程序然后展开文件并引用库函数

编译执行

情况2:使用静态库的文件与静态库不在同一文件夹下

gcc 源文件名 -L 静态库所在的路径 -l 静态库名 -I 头文件所在路径 -o 生成的可执行文件名

-L 引用的静态库所在的路径
-l 静态库名 , 不要 lib .a
-I 头文件所在路径

创建一个新的文件夹testnew,并在该文件夹下创建testnew1.c

这么做的目的是为了让使用静态库的文件与静态库不在同一文件夹下

编译执行

情况3:静态库文件与对应的头文件在系统文件夹下

gcc 源文件名 -l 库文件名 -o 生成的可执行文件名

将之前源文件的值更改一下以便区分

将库文件及其对应的头文件移动到系统中

编译执行

动态库

制作方法

gcc -shared 源文件名 -o 生成的动态库文件名.so

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值