2010-06-28 115 views
0

我想鏈接一個開源庫到我的項目之一。這個庫是非託管的(命名爲Tetgen),我的項目是託管的C++。LNK 2028 - 2019 /託管和非託管C++? (VS 2008)

我的項目識別標題,並可以使用它定義的功能。但我得到一個錯誤2028每次要訪問到在.cpp定義的一些方法時間:

錯誤LNK2028:無法解析令牌(0A000E20)「市民:無效__thiscall tetgenio :: save_nodes(字符常量*)」 (?save_nodes @ tetgenio @@ $$ FQAEXPBD @ Z)的函數引用 「市民:虛擬BOOL __thiscall ForwardModelingPlugin :: CustomMeshVol3D :: tesselate(無效)」(tesselate @ CustomMeshVol3D @ ForwardModelingPlugin @@ $$ FUAE_NXZ?)

我試圖創建一個測試函數:

int tetgenio::Test(int i) { 
    return i; 
} 

...和另一個Testbis函數,在頭文件中定義。 Testbis的工作原理,Test給出了2028錯誤。

我比較我的項目,並創建了.LIB的OBJ,併爲LIB有:

[email protected]@@[email protected] 

但在.OBJ是:

[email protected]@@[email protected] in the .obj 

看樣子他們不一樣。

所有內容都用/ clr編譯。我試過創建一個.lib和一個.dll,兩種方式都有相同的結果。

+0

Tetgen本身是用/ clr編譯的嗎?如果不是,它需要。 – 2010-06-28 18:12:18

+0

是的。一切都以/ clr編譯 – ccote 2010-06-28 20:00:21

回答

0

這是因爲鏈接器問題鏈接到包含相同文件的不同文件夾。