- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
创建和使用静态链接库
【原创】C++关于创建和使用静态链接库
静态库是在编译时跟目标文件一起被编译的。
?
DEV-C++:
首先,新建工程,选择Static Library,工程名称设为Myfunc
新建一个名为func.h的头文件,代码如下
#ifndef _define
#define _define
namespace hehe
{
int foo(int x,int y);
template typename T
T foo1(T x,T y);
//模板定义是不产生代码的,只有在实例化的时候才会产生代码
//所以,使用了模板的函数必须放在头文件中,因为模板需要在编译时推导
template typename T
T foo1(T x,T y)
{
return x+y;
}
}
#endif
?
再新建一个func.cpp文件,添加如下代码
#include func.h
namespace hehe
{
int foo(int x,int y)
{
int z=1;
for(int i=0;iy;i++)
z*=x;
return z;
}
}
?
编译工程,会在工程目录里生成一个Myfunc.a文件
新建一个工程,在工程-工程属性-参数中点击加入库或者对象,添加刚才生成的Myfunc.a
在工程中包含func.h
#include “func.h”???? 也可以把func.h放到DEV-C++的include目录里,用#include func.h引用
然后在主函数里就可以调用自定义的函数了
cout hehe::foo(4,6);
cout hehe::foo1(4,6);
cout hehe::foo1(4.0,6.0);
?
?
?
?
Visual C++:
新建一个Win32 Static Library 工程,工程名为Myfunc
在弹出的步骤1窗口中,可以选择使用预编译的头文件或不选,这里不选择
新建一个func.h,代码同上;新建一个func.cpp代码同上
编译并建立 在debug目录里会生成一个Myfunc.lib文件,把该文件移到\Microsoft Visual Studio\VC98\Lib目录里
把func.h移到\Microsoft Visual Studio\VC98\Include目录里
新建一个工程,在工程设置--连接--对象/库模块中增加Myfunc.lib 空格隔开
#includefunc.h或#include “func.h” 包含该头文件后就可以使用自定义的函数了
0
0
0
(请您对文章做出评价)
? 上一篇:【原创】LIBCD.lib(wincrt0.obj) 错误的原因? 下一篇:【原创】C++创建和使用动态链接库之Win32DLL
posted @ 2009-11-24 22:00 leukotrichia 阅读(136) 评论(0) ?编辑 收藏 所属分类: 库
文档评论(0)