windows环境下静态库的生成和使用 (.lib文件)

来源:互联网 发布:日本经济数据统计局 编辑:程序博客网 时间:2024/04/26 23:57
         这一阵子工作中用到了静态库和动态库的相关知识,自己以前还真的不是特别明白。趁着这个机会,在网上查找了一些和静态库,动态库编程相关的资料,小小的记录一下。Linux环境下的已经记录下来,现在写的windows环境下的静态库和动态库笔记。先说静态库。
        和linux环境下的静态库一样,windows环境下的静态库文件也是一些目标文件的集合体。我们先看一看生成库文件的源文件的代码:
/*testlib.h*/#ifndef _TESTLIB_H_#define _TESTLIB_H_#ifdef __cplusplus extern "C" { #endifint fun1();int fun2();#ifdef __cplusplus } #endif #endif // _TESTLIB_H_
/*testlib.cpp*/#include <stdio.h>#include "testlib.h"int fun1(){return 1;}int fun2(){return 2;}
        使用VC编译器建立一个工程,指明要建立工程的类型是“Win32 Static Library”。进行编译链接,会生成一个名为testlib.lib的静态库文件。这个testlib.lib是VC编译器使用testlib.o文件链接生成的。我们这里只使用了一个目标文件。
        下面我们看一看如何使用这个库文件。使用VC编译器建立一个空工程,工程类型是控制台程序。添加一个文件testLibConsole.cpp文件到工程中。敲入如下代码:
#include <iostream>#include "testlib.h"using namespace std;#pragma comment(lib,"testlib.lib")int main(){printf("fun1() return value is %d\n",fun1());printf("fun2() return value is %d\n",fun2());return 0;}

        记得要将testlib.h头文件和testlib.lib库文件放在此工程的目录下,否则编译链接会失败。我们生成可执行文件testLibConsole.exe之后,就不需要这个testlib.lib库文件了。

参考网站:
http://www.functionx.com/visualc/libraries/staticlib.htm
http://www.functionx.com/visualc/libraries/staticdll.htm

原创粉丝点击