我正在使用带有/ 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)? 我可以在静态库中导出类吗?尝试在静态库中导出类是否存在根本错误?