【原创】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;i<y;i++)
            z*=x;
        return z;
    }
}

 

编译工程,会在工程目录里生成一个Myfunc.a文件

新建一个工程,在工程->工程属性-参数中点击加入库或者对象,添加刚才生成的Myfunc.a

1

在工程中包含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 空格隔开

2

#include<func.h>或#include “func.h” 包含该头文件后就可以使用自定义的函数了

posted @ 2009-11-24 22:00  leukotrichia  阅读(10261)  评论(0编辑  收藏  举报