我正在使用带有 /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 error LNK2020: unresolved token (06000001) multiclasses.Class1::add
错误 2 error LNK2020: unresolved token (06000002) multiclasses.Class1::hadd
错误 3 error LNK2020: unresolved token (06000004) multiclasses.Class2::add
错误 4 error LNK2020: unresolved token (06000005) multiclasses.Class2::hadd
有什么办法可以将类库编译为静态库(.lib)?
我可以在静态库中导出类吗?尝试在静态库中导出类是根本错误的吗?