库的创建和使用

利用gcc命令可以生成动态链接库和静态链接库,假设有三个文件,hello.c hello.h main.c内容如下:

/*hello.c*/
#include<stdio.h>
void hello (const char*name)
{
	printf("Hello %s \n",name);
}

/*hello.h*/
#ifndef HELLO_H
#define HELLO_H
void hello(const char *name);
#endif

/*main.c*/
#include"hello.h"
void main()
{
	hello("world");
}

1.静态链接库创建

在上面三个文件里面hello.c包含了函数hello原型,hello.h包含了对原函数的声明,main.c调用函数。
无论是静态库还是动态库都是由.o文件创建的。
1输入命令:
gcc -c  hello.c  //表示只编译不链接,以后由主程序链接这个文件。
2.hello.o文件创建静态链接库
ar crv libmyhello.a hello.o
3.静态库制作完成,只需要在使用到这些公共函数的源程序里包含这些公共函数的声明,然后利用gcc命令在生成目标文件时指明静态库名字,gcc会将静态库从公共函数连接到目标文件,gcc会在静态库名字前面加lib,尾部追加.a得到静态库文件名字查找库文件。
下面就可以输入命令
gcc -o hello main.c -L. -lmyhello
值得注意的是-L后面有个'.'。然后运行程序会输出结果,静态链接库,链接的时候就加到程序里,所以删除原来的静态库程序也可以运行。

2.动态链接库创建

还是从.o文件开始的。


gcc -shared -fPCI -o libmyhello.so hello.o

生成了动态库,libmyhello.so。对动态库的调用和静态库一样,默认下gcc会搜索路径/usr/lib 和/lib等目录寻找动态库,需要将动态库放到这个目录下。如果删除的话,程序是无法运行的,因为它是运行的时候加载的。















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值