Linux-第三课—库文件

一.库文件

1.定义:库是一组预先编译好的方法的集合。

   Linux系统存储的库的位置一般在:/lib和 /user/lib。在64位的系统上有些库也可能被存储在/user/lib64
   的头文件一般会存储在/user/include下或其子目录下。比如说libc libstdc++
   库是一些特定功能的实现,为用户提供一些调用接口。库有两种,分别是静态库和动态库之分,下图为库分别在不同系统下的呈现方式

 1、静态库的生成
第一步:
将所有的功能代码编译成中间文件,注意,此处不应该有带main方法的源文件。命令如下:

第二步:命令ar
具体操作为

 第3步.静态库的使用
使用的规则如下:

2、共享库的生成

1、动态库生成
使用的规则如下:

 2、动态库的使用
共享库是不可执行的可执行文件,因为没有main方法,不知道从哪儿进,所以无法启动

第一步:
其使用方式和静态库一样先编译链接gcc -o main main.c -L路径 -l库文件名称,因为main方法在上一级目录,所以我们返回上一级目录去执行

但是我们发现还是不能运行,原因是什么呢?
这就要提到我们共享库的一个重要的特点了。共享库是运行的时候由操作系统单独加载的在这里我们只是执行了main方法,其中还没有包含库,只要main方法运行到一定阶段要使用库的时候,该共享库作为一个可执行文件由操作系统加载上来就可执行。
在这儿出现错误的原因就是我们并没有告诉操作系统这个共享库在哪儿,所以在执行的时候找不到库报错。同样的,因为我们没有给操作系统库的路径,他会默认在/lib或/user/lib路径下去寻找 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

果蛋蛋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值