2012-02-22 224 views
-1

我在編譯代碼時遇到無法解析的外部符號錯誤。我正在使用第三方庫。因此在編譯代碼時使用第三方庫名稱空間。無法解析的外部符號錯誤:無法解決它

std_uss.obj : error LNK2019: unresolved external symbol " __declspec(dllimport) void __cdecl os_std::os_throw_length_error(void) " ([email protected][email protected]@YAXXZ) referenced in function " private: char * __thiscall os_std::basic_string<char,class os_std::char_traits_char,class os_std::allocator<char> >::allocate(unsigned int) " ([email protected][email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected])

我發現os_throw_length_error功能在第三部分庫文件中的一個,但沒有發現任何類似的功能::分配中的代碼。我沒有使用標準的std命名空間,因爲我希望編譯器使用第三方命名空間。

如果我使用using namespace std這是標準的,那麼我的編譯是成功的,但然後像字符串一些定義被引用到Visual Studio字符串而不是第三方字符串函數。

+0

_什麼是第三方庫? – 2012-02-22 11:36:55

+0

第三方庫是遞歸軟件的ospace – novice 2012-02-22 11:56:25

回答

0

您需要將第三方DLL的導入庫(.lib文件)添加到您的項目中。在Visual Studio中,這將在項目屬性中的鏈接器/輸入/附加依賴項下

+0

我將所有.lib文件添加到其他依賴項中。我仍然看到同樣的問題。 – novice 2012-02-22 11:46:34

+0

嘗試運行.lib文件上的DUMPBIN/EXPORTS以查看鏈接器所投訴的符號(或類似符號)是否在導出符號列表中。 – AndrzejJ 2012-02-22 12:17:31

相關問題