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

来源:互联网 发布:巨灵数据库 编辑:程序博客网 时间:2024/06/08 17:52

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

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

第一步:在新建项目中,应用程序设置中,选择DLL,其他不变

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

1.配置属性-连接器-输出文件
把输出文件名改一下,后缀不要变,例如my.dll
这里写图片描述

2.配置属性-C/C++-代码生成
找到运行时库,改成多线程调试(/MTD)
这里写图片描述

3.配置属性-C/C++-预编译头
找到“创建使用编译头”,设置不使用编译头
这里写图片描述

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

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

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

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

在新打开的vs中编写代码

#include<stdio.h>#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文件一个目录下。
然后编译链接执行。

二、生成静态库的方法
在创建项目时,只需要以下设置就可以了。
应用程序设置中勾选静态库,取消使用预编译头的勾选
这里写图片描述

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

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

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

#include<stdio.h>#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;}
1 0
原创粉丝点击