C/C++中生成动态库和静态库的方法

本文只介绍如在visual studio 2008中生成动态库和静态库的方法。。

一、生成动态库(Dynamic-link library)的方法

第一步:在新建项目中,应用程序设置中,选择DLL,其他不变
C/C++中生成动态库和静态库的方法_第1张图片

然后右击你的项目文件,选择属性,然后在弹出的属性框中,设置三个地方。

1.配置属性-连接器-输出文件
把输出文件名改一下,后缀不要变,例如my.dll
C/C++中生成动态库和静态库的方法_第2张图片

2.配置属性-C/C++-代码生成
找到运行时库,改成多线程调试(/MTD)
C/C++中生成动态库和静态库的方法_第3张图片

3.配置属性-C/C++-预编译头
找到“创建使用编译头”,设置不使用编译头
C/C++中生成动态库和静态库的方法_第4张图片

这三步完成后,点击确定
在项目文件源文件中添加名为mydll.cpp的项目文件,编写代码

_declspec(dllexport) int sum(int a,int b)
{
    return a+b;
}

然后编译链接执行,右击项目文件,选择在资源管理器中打开,找到生成的my.lib和my.dll这两个文件,只需要这两个文件。

然后重新打开一个vs2008,正常的建立一个项目,不做任何设置(在生成动态库时,对vs2008设置的一些属性,在新打开的vs中不生效,会回到默认设置,一切正常建立一个项目就可以)

在新打开的vs中编写代码

#include
#pragma comment(lib,"my.lib")
_declspec(dllimport) int sum(int a,int b);
int main()
{
    int result = sum(3,4);
    printf("result:%d\n",result);
    return 0;
}

注意,要把上一个项目中生成的my.dll和my.lib文件拿出来,放在本项目中CPP文件一个目录下。
然后编译链接执行。

二、生成静态库的方法
在创建项目时,只需要以下设置就可以了。
应用程序设置中勾选静态库,取消使用预编译头的勾选
C/C++中生成动态库和静态库的方法_第5张图片

然后把输出文件改为my.lib
编写代码

int sum(int a,int b)
{
    return a+b;
}

编译链接生成后再资源管理器中找到生成的my.lib文件。
此时打开一个新的vs,正常的创建一个项目
编写以下代码

#include
#pragma comment(lib,"my.lib")
int sum(int a,int b);
int main()
{
    int ret = sum(2,3);
    printf("ret:%d\n",ret);
    return 0;
}

你可能感兴趣的:(C,/C++)