多语言展示
当前在线:1559今日阅读:60今日分享:41

如何将c文件生成静态库

C语言是一个灵活度非常高的语言,有时候我们会重复调用一些相近的操作,这就要用到库,但可能编译器自带的库不包含我们想要的功能,同时我们的代码可能会给别人使用,但有的时候又不方便直接给源代码,那么这个时候我们就会考虑创建自己的静态库,今天就介绍一个基于DEVCPP的比较初步的C语言静态库的建立和使用方法。
工具/原料
1

PC一台

2

DevCPP集成开发环境一个

方法/步骤
1

新建3个文本文件分别重命名为main.c、libTest.c、libTest.h,其中libTest.c和libTest.h用于建立我们自己的静态库程序,main.c用于对我们建立的静态库程序进行测试。完成后,进入下一步工作:

2

我们的静态库文件大致的功能是建立一个Talk函数,该函数将用户传入的字符串显示到屏幕,具体代码如下:/*********************************************文件名称:libTest.c*模块功能:c语言lib库文件生成测试 *维护记录:* 2018-06-19 创建 *********************************************/#ifndef __LIBTEST_C__#define __LIBTEST_C__#include #include 'libTest.h'void Talk(char *str){ printf('%s\r\n', str);}#endif//#ifndef __LIBTEST_C__向libTest.h输入下述代码:/*********************************************文件名称:libTest.h*模块功能:c语言lib库文件生成测试 相关定义 *维护记录:* 2018-06-19 创建 *********************************************/#ifndef __LIBTEST_H__#define __LIBTEST_H__void Talk(char *str);#endif//#ifndef __LIBTEST_H__

3

接下来打开DevCpp,创建一个新的Project,在工程选项对话框中选择Static Library,在“名称”文本框输入libTest,这个libTest将输出为我们的静态库文件,同时勾选“C项目”,配置完成后点击“确定”按钮,继续下一步:

4

点击工具栏的“运行”按钮,在弹出的下来框选择“编译”,或者也可以直接按快捷键“F9”,之后软件对我们这个库代码进行编译,成功后会在下面的提示中显示出来,表示我们的库文件就生成了。继续下一步。

5

编译成功后,我们可以在静态库的工程目录中看到我们的静态库文件,它的名字就是我们工程的名字,也就是图中的libTest.a,这个文件目录要记住,之后会用到,接下来继续下一步操作

6

创建一个DevCpp工程,工程类型请选择“Console Application”,选择项目类型为“C类型”,工程名称输入Test,所有设置完成后点击“确定”按钮,请看下一步操作

7

将main.c加载到工程当中,输入下面的代码,不出意外,在我们我们的程序运行后,显示屏会显示一行Hello world !#include 'libTest.h'int main(int argc, char *argv[]) { Talk('Hello world !'); return 0;}代码输入完成后点击工具栏的“项目” ->“项目属性”,继续下一步工作

8

接下来是我们本此最重要的一部,加载静态库。在弹出的“项目选项”对话框选择“参数”选项卡,然后点击右下角的长条形按钮“加入库或者对象”

9

在弹出的文件对话框中,选中我们之前生成的libTest.a静态库文件,然后点击“打开”按钮回到“项目属性”对话框,我们会看到“链接”下面的文本框中多了一个libTest.a,这说明我们的静态库成功添加了,点击“确定”按钮,进入下一步操作

10

最后一步,回到主程序界面,点击工具栏的“运行”按钮,在弹出的下拉框中选择“编译运行”按钮,或者直接按快捷键F11,即可编译-运行一部到位,成功后会弹出一个黑色背景的窗口,上面显示几行字符串,第一行就是我们程序打印出来的Hello world !  到此为止我们关于C语言静态库的创建和使用就告一段落了。

注意事项
1

1、注意DEVCPP工程类型,不要选错了。

2

2、如果编译不通过那很可能是你的编译器不支持中文目录,或者代码录入有误,DEVCPP有一个不好的地方就是对于一些拼写错误它有时不能准确指明位置,比如我遇到过把printf打印成ptinf它并不能编译器只提示不通过但没有指明错误位置。

3

3、进行测试程序编译前请确定你的静态库文件已经成功生成,并且已经加载到你的工程当中。

推荐信息