类库 - 静态库 - 链接器问题LNK4221

时间:2011-01-09 16:34:07

标签: c++-cli static-libraries class-library static-classes

我正在使用带有/ clr的VS2008,类库模板。 我想要一个托管类库。 当我将库编译为dll时,一切正常。

头文件:multiclasses.h

#pragma once

namespace multiclasses
{
    public ref class Class1
    {
    public: int a, b;
    private: int c, d;
    public: int add(int a, int b);
    private: int hadd(int a, int b);
    };

    private ref class Class2
    {
    public: int a, b;
    private: int c, d;
    public: int add(int a, int b);
    private: int hadd(int a, int b);
    };
}

源文件:multiclasses.cpp

#include "multiclasses.h"

namespace multiclasses
{

    int Class1::add(int a, int b)
    {
        return a + b;
    }
    int Class1::hadd(int a, int b)
    {
        return a + b;
    }

    int Class2::add(int a, int b)
    {
        return a + b;
    }
    int Class2::hadd(int a, int b)
    {
        return a + b;
    }
}

当我将配置类型更改为静态库(.lib)时,我收到链接器警告: 警告

警告LNK4221:未找到任何公共符号;档案成员将无法访问

因此,使用此库的项目提供:

错误1错误LNK2020:未解析的令牌(06000001)multiclasses.Class1 :: add

错误2错误LNK2020:未解析的令牌(06000002)multiclasses.Class1 :: hadd

错误3错误LNK2020:未解析的令牌(06000004)multiclasses.Class2 :: add

错误4错误LNK2020:未解析的令牌(06000005)multiclasses.Class2 :: hadd

有没有办法可以将类库编译为静态库(.lib)? 我可以在静态库中导出类吗?尝试在静态库中导出类是否存在根本错误?

0 个答案:

没有答案