静态链接库和动态链接库
来源:互联网 发布:淘宝网店怎么注销 编辑:程序博客网 时间:2024/05/21 08:46
静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。
静态链接库(Lib)
在VC++6.0中new一个名称为libTest的static library工程,
并新建lib.h和lib.cpp两个文件,lib.h和lib.cpp的源代码如下:
//文件:lib.h
#ifndef LIB_H
#define LIB_H
extern "C" int add(int x,int y); //声明为C编译、连接方式的外部函数
#endif
//文件:lib.cpp
#include "lib.h"
int add(int x,int y)
{
return x + y;
}
编译这个工程就得到了一个.lib文件,这个文件就是一个函数库,它提供了add的功能。将头文件和.lib文件提交给用户后,用户就可以直接使用其中的add函数了。
标准Turbo C2.0中的C库函数(我们用来的scanf、printf、memcpy、strcpy等)就来自这种静态库。
#include <stdio.h>
#include "..\lib.h"//不可丢失
#pragma comment( lib, "..\\debug\\libTest.lib" ) //指定与静态库一起连接
int main(int argc, char* argv[])
{
}
静态链接库的调用就是这么简单,或许我们每天都在用,可是我们没有明白这个概念。代码中#pragma comment( lib , "..\\debug\\libTest.lib" )的意思是指本文件生成的.obj文件应与libTest.lib一起连接。
- 静态库链接、动态库静态链接和动态链接
- 静态链接库和动态链接库
- 静态链接库和动态链接库
- 静态链接库和动态链接库
- 动态链接库和静态链接库
- 静态链接库和动态链接库
- 静态链接库和动态链接库
- 静态链接库和动态链接库
- 静态链接库和动态链接库
- 静态链接库和动态链接库
- 静态链接库和动态链接库
- 动态链接库和静态链接库
- 静态链接库和动态链接库
- 动态链接库和静态链接库
- 动态链接库和静态链接库
- 静态链接库和动态链接库
- 动态链接库和静态链接库
- 静态链接库和动态链接库
- C语言的发展及其版本
- 新疆首富500亿书画收藏是庞氏骗局?
- 【OpenCV】图像处理和图像识别中常用的OpenCV函数汇总
- 当您嫌弃您的父母时,请您读读这段话
- android heap 内存统计
- 静态链接库和动态链接库
- SOA与面向服务开发-笔记
- ibatis中simple,dbcp,jndi的区别
- java实现以某种格式按行读取写入文件
- boost正则式解析MAC地址和IP地址
- 用SQLyog 可视化界面 操作MySQL数据库 时 技巧 心得 和 一些简单操作
- [LeetCode] Add Two Numbers
- Hibernate 参数设置一览表
- $.ajax json数据传递方法