LNK 2028 - 2019 /托管和非托管C ++? (VS 2008)

时间:2010-06-28 17:41:18

标签: c++ visual-studio-2008 unmanaged lnk2019 tetgen

我正在尝试将开源库链接到我的项目之一。该库是非托管的(名为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,但结果相同。

1 个答案:

答案 0 :(得分:0)

这是因为链接器问题链接到包含相同文件的不同文件夹。