环境:vs2010 或 vs2013

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

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

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

如下图所示:

制作sdk 包含oc swift 打包静态库 生成静态库_源文件

第二步:编写项目内容

        首先在头文件下添加一个头文件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的内容如下:

#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文件:

制作sdk 包含oc swift 打包静态库 生成静态库_源文件_02

这样供给别人调用的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文件,待会儿在这个里面编辑代码就好了: 

制作sdk 包含oc swift 打包静态库 生成静态库_头文件_03

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

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

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

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

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

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

如下图所示:

制作sdk 包含oc swift 打包静态库 生成静态库_源文件_04

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

制作sdk 包含oc swift 打包静态库 生成静态库_static lib_05

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

在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;
}

正确输出了结果:

制作sdk 包含oc swift 打包静态库 生成静态库_源文件_06

第三部分:补充

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

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

制作sdk 包含oc swift 打包静态库 生成静态库_源文件_07