Linux下C语言开发(三):静态库

在我们编写软件的过程当中,少不了需要使用别人的库函数。因为大家知道,软件是一个协作的工程。作为个人来讲,你不可能一个人完成所有的工作。另外,网络上一些优秀的开源库已经被业内广泛接受,我们也没有必要把时间浪费在这些重复的工作上面。

    既然说到了库函数,那么一般来说库函数分为两种方式:静态库和动态库。两者的区别其实很小,静态库是必须要链接到执行文件中去的,而动态库是不需要链接到最后的执行文件中的。怎么理解呢?也就是说,对于最后的执行文件而言,你是否删除静态库无所谓。但是,一旦你删除了动态库,最后的执行文件就玩不转了。

    今天我们讨论的问题是静态库。为了显示windows和linux创建静态库之间的差别,我们首先在windows上面利用Visual C++6.0创建一个静态库。源文件的代码很简单,
首先是add.c文件:

#include "test.h"
 
int add(int a, int b)
{
    return a + b;
}

头文件test.h

#ifndef _TEST_H
#define _TEST_H

int add(int a, int b);

#endif

那么,在linux下面应该怎么运行呢?其实很简单,两条命令解决,
(1)首先生成*.o文件,输入gcc -c add.c -o add.o
(2)利用ar命令生成静态库,输入ar rc libadd.a add.o

 

如果此时还有一个hello.c文件使用该静态库,

#include <stdio.h>
#include "test.h"
 
int main()
{
    printf("%d\n", add(2, 3));
    return 0;
}

其实也很简单,输入一个简单的命令就可以生成执行文件了,
(1)首先输入gcc hello.c -o hello ./libadd.a

(2)输入./hello,验证生成的执行文件是否正确

(3)朋友们可以删除libadd.a文件,重新输入./hello,验证执行文件是否可以正常运行
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值