制作自己的静态链接库并应用到程序中
2015-06-18 20:09
302 查看
在VC++6.0 中编写某个C程序文件中需要 printf 函数时,我们只需要将 stdio.h 包含在该文件中即可。但如何使我们自己编写的函数有这样的效果呢?
printf 函数的声明在stdio.h 头文件中,而其具体实现则在libc.lib 静态库文件中。这启示我们利用静态链接库来实现这种效果。
1. 制作静态链接库
首先建立静态链接库工程simpleCalc,然后导入plus.h、plus.cpp、minus.h、minus.cpp四个文件。
plus.h代码如下:
// plus.h
#ifndef PLUS_H
#define PLUS_H
extern "C" int plus(int x,int y);
#endif
plus.cpp代码如下:
// plus.cpp
#include "stdio.h"
#include "plus.h"
int plus(int x,int y)
{
return x+y;
}
minus.h代码如下:
// minus.h
#ifndef MINUS_H
#define MINUS_H
extern "C" int minus(int x,int y);
#endif
minus.cpp代码如下:
// minus.cpp
#include "stdio.h"
#include "minus.h"
int minus(int x,int y)
{
return x-y;
}
编译、链接后将simpleCalc.lib、plus.h、minus.h 分类整理到特定文件中(本例中,将simpleCalc.lib 放入F:\lib 文件夹中,plus.h、minus.h 放入F:\include 文件夹中)。
2. 静态库文件测试
新建工程testMyLib,导入main.cpp 文件,其代码如下:
//main.cpp
#include "stdio.h"
#include "plus.h"
#include "minus.h"
void main()
{
printf("5-3=%d\n",minus(5,3));
printf("5+3=%d\n",plus(5,3));
}
如果直接编译后链接,就会产生错误。
在链接前需做以下工作:
1)在”工具→选项“对话框中选择”目录“标签,下拉菜单选”Include files“,添加路径”F:\include"; 下拉菜单选“Library files",添加路径”F:\lib".
2)在“工程→设置”对话框中选择“连接”标签,在“对象/库模块”中添加simpleCalc.lib(将光标移至末尾,空格后输入simpleCalc.lib)
如此之后,编译、链接成功,程序正常运行。
通过这种方式,可以将自己编写的并且比较成熟的函数实现制作成静态链接库放在特定文件中,然后利用此方法重复使用,提高编写效率。
printf 函数的声明在stdio.h 头文件中,而其具体实现则在libc.lib 静态库文件中。这启示我们利用静态链接库来实现这种效果。
1. 制作静态链接库
首先建立静态链接库工程simpleCalc,然后导入plus.h、plus.cpp、minus.h、minus.cpp四个文件。
plus.h代码如下:
// plus.h
#ifndef PLUS_H
#define PLUS_H
extern "C" int plus(int x,int y);
#endif
plus.cpp代码如下:
// plus.cpp
#include "stdio.h"
#include "plus.h"
int plus(int x,int y)
{
return x+y;
}
minus.h代码如下:
// minus.h
#ifndef MINUS_H
#define MINUS_H
extern "C" int minus(int x,int y);
#endif
minus.cpp代码如下:
// minus.cpp
#include "stdio.h"
#include "minus.h"
int minus(int x,int y)
{
return x-y;
}
编译、链接后将simpleCalc.lib、plus.h、minus.h 分类整理到特定文件中(本例中,将simpleCalc.lib 放入F:\lib 文件夹中,plus.h、minus.h 放入F:\include 文件夹中)。
2. 静态库文件测试
新建工程testMyLib,导入main.cpp 文件,其代码如下:
//main.cpp
#include "stdio.h"
#include "plus.h"
#include "minus.h"
void main()
{
printf("5-3=%d\n",minus(5,3));
printf("5+3=%d\n",plus(5,3));
}
如果直接编译后链接,就会产生错误。
在链接前需做以下工作:
1)在”工具→选项“对话框中选择”目录“标签,下拉菜单选”Include files“,添加路径”F:\include"; 下拉菜单选“Library files",添加路径”F:\lib".
2)在“工程→设置”对话框中选择“连接”标签,在“对象/库模块”中添加simpleCalc.lib(将光标移至末尾,空格后输入simpleCalc.lib)
如此之后,编译、链接成功,程序正常运行。
通过这种方式,可以将自己编写的并且比较成熟的函数实现制作成静态链接库放在特定文件中,然后利用此方法重复使用,提高编写效率。
相关文章推荐
- Fiddler之makecert.exe提示Failed to acquire a security provider from issuer's centificate问题解决
- uCOS中任务调度时的上下文切换
- iBatis开发环境搭建和第一个程序
- 【华为oj】计算每个名字最大可能的“漂亮度”
- android之修改系统自带ProgressDialog样式
- 判断和类型
- OpenCV基础篇之Mat数据结构
- 二叉树 UVA 548 Tree
- 在Ubuntu Kylin下安装QQ教程
- android EditText获取光标位置并安插字符删除字符
- Android 常用RGB值及名称
- c++的设计模式之备忘录模式
- ceph-rest-api的使用
- Android-IM架构设计
- C++: std::string 与 Unicode 如何结合?
- AES加密示例
- Kernel那些事儿之内存管理(1) --- 人在江湖
- 霍夫曼
- linux主机之间文件copy
- Android AsyncTask 详解