VS2010/2013下生成并使用静态库

第一部分:生成静态库,即.lib文件

第一步:新建一个静态库(static library)项目

打开VS,文件->新建->项目,选择“Win32项目”(备注:其实这里选择“Win32控制台应用程序”也是一样的,因为下一步才是具体的选择你的项目是什么类型,即使退一万步说你现在选错了,后面仍然可以更改,这个后面补充说明),

如下图所示:

第二步:编写项目内容

首先在头文件下添加一个头文件static.h,在源文件下添加一个源文件static.cpp. 

头文件static.h的内容如下:


#ifndef STATIC_H
#define STATIC_H
 
extern "C" int sum(const int x, const int y);
extern "C" int sub(const int x, const int y);
 
#endif


源文件static.cpp的内容如下:

扫描二维码关注公众号,回复: 5443966 查看本文章


#include "static.h"
 
int sum(const int x, const int y)
{
    return x + y;
}
 
int sub(const int x, const int y)
{
    return x - y;
}


第三步:生成.lib文件

在菜单栏选择“生成”->“生成解决方案”就可以了。然后打开工程文件夹,在Debug目录下(编译选择的是默认的Debug和Win32)就可以看到一个和项目名称TestGenLib相同的lib文件:

这样供给别人调用的lib文件就生成好了,下面讲如何调用这个静态库文件。

第四步:把.h文件和.lib文件放在专门的文件夹中

比如我是放在这样的文件夹中:

static.h头文件拷贝到了D:\Visual Studio 2013\Projects\TestCallLib\include

TestGenLib.lib库文件拷贝到了D:\Visual Studio 2013\Projects\TestCallLib\lib

这个放在什么目录完全自己决定,只要名字起的有意义就好了,一般头文件都是用一个include文件夹放在一起,库文件都是用一个lib文件夹放在一起。

第二部分:调用静态库

第一步:新建一个Win32控制台应用程序

之所以选择控制台,是因为可以cmd窗口输出查看调用效果啊。新建好项目之后,不用添加什么新的头文件和源文件,有一个默认的带主函数_tmain()的cpp文件,待会儿在这个里面编辑代码就好了:

第二步:调用lib库需要的各种配置

首先右击项目,选择最后一个“属性”,打开属性页面,选择“VC++目录”,配置这里的包含目录和库目录。从名字中你也能看出来了,包含目录自然是指#include的那些文件的目录,这里就是我们之前生成的头文件,而库目录自然就是之前生成的.lib文件了。

“包含目录”这里添加你之前存放static.h头文件的那个目录路径,我这里就是:

D:\Visual Studio 2013\Projects\TestCallLib\include

“库目录”这里添加你之前存放TestGenLib.lib文件的那个目录路径,我的就是:

D:\Visual Studio 2013\Projects\TestCallLib\lib

如下图所示:

然后还是在这个属性页下,选择“链接器”->“输入”,在“附加依赖项”这里添加要调用的lib文件的名字:TestGenLib.lib

这样需要的配置就大功告成了。

在cpp文件中包含相应的头文件#include "static.h",测试代码如下:


#include "stdafx.h"
 
#include "static.h"
#include <iostream>
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::cout << sum(3, 5) << std::endl;
    std::cout << sub(4, 1) << std::endl;
 
    system("pause");
    return 0;
}


大功告成,正确输出了结果:

第三部分:补充

之前提到了即使选错了项目,也可以在项目建立之后改变,具体如下:

右键项目,打开属性页,选择“配置属性”->“常规”,看到“项目默认值”下面有个“配置类型”了吗,在里面进行修改就好了:

猜你喜欢

转载自blog.csdn.net/carlhelen/article/details/85157331