VS中创建静态库&C/C++静态库的使用
2014-06-16 12:58
288 查看
静态库: Static Libaray
在Linux环境中,通常编译出的结果以.a结尾,相当于是obj文件打包形成的结果。
在Window环境中,和动态库一样,也是以.lib结尾,不过大小也远大于同等情况的动态库。因为动态库.lib只有声明相关信息,静态库.lib是包含了所有编译obj结果。
在VS中定义静态库的方法是:
方法1:创建dll工程的时候,选择静态库选项
方法2:已创建dll的工程属性,设置为:静态链接库
在VS中定义静态函数导出函数的方法是:
其实这样说不太合理,静态库中的函数都可以认为是导出的,静态库相当与工程中编译出的obj文件,使用时,像使用项目中的一样。
Window下静态库导出函数:不需要dllexport声明,只需要属性配置为:静态库 (对比动态库导出函数:是需要dllexport声明的)
如果调用方也是C++的话,不需要处理函数名称重载的问题,但如果调用方是非C++的话,对于外部实用的函数需要添加:
extern "C" {
函数声明定义1;
函数声明定义2:
};
例如:函数名称max没有被C++重载处理为形如max_int_int名称,导致外部使用max找不到函数
静态库的使用:
静态库的使用和动态库类似,也是使用#pragma comment(lib,"xxx.lib") 加载,不过使用的时候,和使用其它.cpp中的函数效果一样:
1. 包含头文件,然后使用
2. 声明后使用
例如:
extern int max(int x, int y); // 声明使用其他cpp中定义函数
... 后面就可以直接用了,如 int a = max(1, 10);
另外,对于在C++中使用C的静态库:需要加上 extern "C",同样是为了解决名称在C++中会被重载的问题。
extern "c" {
#include "xxx.h"
}
Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源
在Linux环境中,通常编译出的结果以.a结尾,相当于是obj文件打包形成的结果。
在Window环境中,和动态库一样,也是以.lib结尾,不过大小也远大于同等情况的动态库。因为动态库.lib只有声明相关信息,静态库.lib是包含了所有编译obj结果。
在VS中定义静态库的方法是:
方法1:创建dll工程的时候,选择静态库选项
方法2:已创建dll的工程属性,设置为:静态链接库
在VS中定义静态函数导出函数的方法是:
其实这样说不太合理,静态库中的函数都可以认为是导出的,静态库相当与工程中编译出的obj文件,使用时,像使用项目中的一样。
Window下静态库导出函数:不需要dllexport声明,只需要属性配置为:静态库 (对比动态库导出函数:是需要dllexport声明的)
如果调用方也是C++的话,不需要处理函数名称重载的问题,但如果调用方是非C++的话,对于外部实用的函数需要添加:
extern "C" {
函数声明定义1;
函数声明定义2:
};
例如:函数名称max没有被C++重载处理为形如max_int_int名称,导致外部使用max找不到函数
静态库的使用:
静态库的使用和动态库类似,也是使用#pragma comment(lib,"xxx.lib") 加载,不过使用的时候,和使用其它.cpp中的函数效果一样:
1. 包含头文件,然后使用
2. 声明后使用
例如:
extern int max(int x, int y); // 声明使用其他cpp中定义函数
... 后面就可以直接用了,如 int a = max(1, 10);
另外,对于在C++中使用C的静态库:需要加上 extern "C",同样是为了解决名称在C++中会被重载的问题。
extern "c" {
#include "xxx.h"
}
Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源
相关文章推荐
- 演练:创建和使用静态库 (C++)
- Windows静态库和动态库的创建和使用 (lib vs dll)
- VS 创建 使用C++ 静态类库(Dll)
- 演练:创建和使用静态库 (C++)
- 简谈用g++编译运行c++代码流程,以及动态库静态库的创建与使用
- 演练:创建和使用静态库 (C++)
- C++ VS 2008中ATL的创建,使用。并在C++项目中进行调用测试
- vs2013 创建静态库和使用静态库
- C/C++静态库创建、导出和使用(图文)
- VS2015用C++创建动态库DLL及使用
- 创建和使用静态库 (C++)
- 创建和使用静态库 (C++)
- VS实现静态库的创建和使用
- vs如何创建和使用lib静态库
- 创建和使用静态库 (C++)
- 创建和使用静态库 (C++)
- 创建和使用静态库 (C++)
- 演练:创建和使用静态库 (C++)
- 演练:创建和使用静态库 (C++)
- VS下动态库和静态库的创建以及使用