我有一個討厭的鏈接器錯誤的問題,並希望找到一個解決方案的提示。需要幫助解決鏈接器錯誤LNK2001視覺工作室2010
我明白錯誤的方式,鏈接器無法找到類'BFStream'中名爲'read'的函數的實現。代碼包含BFStream類的頭文件。有一個導入庫QRFound.lib,它接收來自QRFound.dll的導出函數。 dll和lib都在文件系統的lib目錄中。 lib目錄在兩個位置的項目屬性中提供:VC++目錄 - >庫目錄和鏈接器 - >其他庫目錄。 QRFound.lib在Linker-> Input-> Additional Dependencies中指定,並且在列表中第一個。
我知道QRFound.dll包含BFStream :: read的實現,因爲我使用dependency walker來查看它。但C++的裝飾是從哪個有我可疑鏈接錯誤略有不同:[email protected]@@[email protected]
鏈接器錯誤是:
1> Creating library C:\MyProj\Debug\MyDisplay.lib and object C:\MyProj\Debug\MyDisplay.exp
1>MyCmdReceiver.obj : error LNK2001: unresolved external symbol "public: bool __thiscall BFStream::read(char *,__int64)" ([email protected]@@[email protected])
QRFound.dll的出處是什麼? 它可能是由不同的C++編譯器構建的,通常,從DLL導出C++接口是一個糟糕的主意:堅持使用C接口或使用COM。 –