下面说一下建立静态链接库的方法
各个C语言编程软件都有它的方法,比如建立一个工程来共享文件,这就比较容易和简单了,现在我们选择使用难一点的linux系统,探究在linux系统下的建立静态链接库的方法。
首先,在linux系统我们在一个文件夹目录里面来建立一个 .h 头文件和一个 .c 文件,(比如我建立tiaoshen.c 和 mmc.h)然后打开它们。
在 .c 头文件里面我们写上自己创作的函数,比如下面我的例子:
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
int mut(int a,int b)
{
return a*b;
}
int div(int a,int b)
{
return a/b;
}
之后我们在头文件中声明这些函数
int add(int a,int b);
int sub(int a,int b);
int mut(int a,int b);
int div(int a,int b);
然后我们开始编译,为了方便,建立一个makefile管理文档,在里面写入:
all:
gcc tiaoshen.c -o tiaoshen.o -c
ar -rc libtiaoshen.a tiaoshen.o
(注意makefile使用的基本规则和使用方法,这里不赘述)
解释一下这两句话: -o后面表示生成的文件的名字, -c表示只编译,不链接,这样你的主函数写完引用它的时候才把它链接到你的程序中。
ar是打包工具,一个程序。 -rc libtiaoshen.a tiaoshen.o表示用tiaoshen.o创建libtiaoshen.a这个打包文件。
然后开始正式使用。
在某处创建一个.c文件,比如 xu.c 然后打开,写入程序,引用你编写的函数,比如:
#include<stdio.h>
int main(void)
{
int a ,b ;
a=4;
b=7;
printf("4 * 7 = %d\n",mut(a,b));
}
然后保存,编译。
你可以先在存链接库文件的目录下使用 nm libtiaoshen.a 来查看里面的函数。
编译方法:-lxxx -L链接库目录
gcc xu.c -o shen -ltiaoshen -L.
-ltiaoshen表示引用了tiaoshen库,最后面的-L.表示在当前目录下。
运行,成功!