- 作者:xiaoxiao
- 发表时间:2020-12-23 11:01
- 来源:未知
Dev-Cpp/Mingw32 环境介绍(5)
上文回顾:
上文《Dev-Cpp/Mingw32 环境介绍(4)》我们介绍了如何使用 静态连接库。今天我们介绍如何制作自己的Mingw32的静态链接库。至于Win32下的那种静态连接库我想熟悉Win32的人应该很清楚如何制作。所以我们这里就不做介绍了。
第八章 制作自己的静态链接库
这是第八章,八这个数字很多人都喜欢。我也一样。(感觉好迷信啊。)这一章我们要来制作静态链接库,我相信各位一定会很高兴的。 首先我先简单介绍一下静态链接库的作用。我们知道,C/C++程序生成目标代码的过程有,编写代码,编译代码,连接代码,生成目标代码。在连接代码的时候,会将编译后的二进制代码连接成目标代码。但是,有些时候。我们想让程序导入必要的代码,而不想导入无用的代码到我们的程序中。我们该如何呢?很简单,使用静态连接库。使用它我们就可以实现将在程序中使用的函数导入的目的。 下面我们来一步步的学做静态链接库并且学会如何使用。 我们现在先写一段代码,你可以用Dev也可以用记事本也可以用任何你喜欢的文本编辑器。像我就比较喜欢vi或者emacs作为平时的文本编辑器。话说远了,现在言规正传。我们写下下面的代码。
//HelloWorld.c
#include <stdio.h>
void HelloWorld(void){ printf("Hello World");}
上面那段C代码各位应该很熟悉的吧,那么经典的Hello World好让我怀念啊。保存为HelloWorld.c以后我们就开始生成了。首先,我们先编译HelloWorld.c
gcc -c HelloWorld.c -o HelloWorld.o
这样我们得到一个二进制的文件HelloWorld.o
接着我们生成静态库。
ar cqs libHelloWorld.a HelloWorld.o
这样我们党额静态链接库就好了。如果有需要可以将其他的二进制文件名加HelloWorld.o的后面将他们连接成一个静态链接库。另外,生成的静态库文件名必须为lib*.a
好了,现在我们来使用我们的库吧。
接下来,我们为了能够使用方便,写一个如下头文件。
//HelloWorld.hvoid HelloWorld(void);
接着我们开始使用我们刚才生成的静态库。写一个main.c的文件。
//main.c