浅析linux 程序中的库

       linux下的程序如许多命令(ls 、echo、cd)要实现他们的功能,需要许多函数,在这些程序的源码中,这些函数的来源可以有两种,一种是自己编写,另一种是通过调用别人已经写好的函数,自己在编写程序的时候如果有别人已经写好的函数,直接调用这些函数会提高自己的工作效率,何乐而不为呢。
       既然是我们要调用别人已经写好的函数,我们先要了解一下这些函数在哪里,如何调用它们了。linux中人们把预先编译好的函数集合起来,这些函数都是按照可重用的原则编写的,用来执行某项常见任务的,比如屏幕处理函数集合(curses集合),说专业点,人们把这样的函数集合叫函数库。标准的系统库文件一般都存储在/lib和/usr/lib目录中,你可以通过ls 命令查看到这些目录下有很多后缀为.so 或则.a的文件,这些文件就是为我们提供函数的。
      linux 中的函数库分有两种:静态库和共享库。可以从库文件的后缀区分它们,后缀为.a的代表静态库,以.so为后缀的代表共享库。为了了解关于库,我们下面创建一个静态库,然后在程序中使用它。
一、静态库
 
1.建立一个fred.c的文件在里面我们写入如下代码:
 
[root@M2_test_192.168.8.93_61618_A code]# vim fred.c

#include <stdio.h>

void fred(int arg){
        printf("fred:you passed %d \n",arg);
}

2.再建立一个bill.c的文件,在里面也写入一些代码
 
[root@M2_test_192.168.8.93_61618_A code]# vim bill.c

#include <stdio.h>

void bill(char *arg){
        printf("bill:you passed %s \n",arg);
}
然后分别编译这两个函数,产生要包含在库文件中的目标文件
 
[root@M2_test_192.168.8.93_61618_A code]# gcc -c bill.c fred.c
 
这里gcc通过-c选项来阻止编译器创建一个完整的程序,如果试图创建一个完整的程序将不会成功,因为我们还为定义main函数
下面我们开始编写一个调用bill函数的程序。首先,为我们的库文件创建一个头文件,这个头文件将声明我们的库文件中的函数,它应该被所希望使用我们库文件的应用程序所包含。
 
3.创建lib.h头文件:
 
[
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值