我正在尝试将开源库链接到我的项目之一。该库是非托管的(名为Tetgen),我的项目是托管C ++。
我的项目识别标题并可以使用其中定义的函数。但是每次想要访问.cpp中定义的某些方法时,我都会收到2028错误:
错误LNK2028:未解析的令牌(0A000E20)“public:void __thiscall tetgenio :: save_nodes(char const *)”(?save_nodes @ tetgenio @@ $$ FQAEXPBD @ Z)在函数“public:virtual bool __thiscall ForwardModelingPlugin中引用: :CustomMeshVol3D :: tesselate(void)“(?tesselate @ CustomMeshVol3D @ ForwardModelingPlugin @@ $$ FUAE_NXZ)
我试图创建一个测试函数:
int tetgenio::Test(int i) {
return i;
}
...以及标题中定义的另一个Testbis函数。 Testbis工作,测试给出2028错误。
我比较了我的项目的.obj和创建的.lib,而lib则是:
save_nodes@tetgenio@@QAEXPAD@Z
但是在.obj中它是:
save_nodes@tetgenio@@$$FQAEXPBD@Z in the .obj
看起来他们不一样了。
所有东西都是用/ clr编译的。我尝试过创建.lib和.dll,但结果相同。
答案 0 :(得分:0)
这是因为链接器问题链接到包含相同文件的不同文件夹。