我试图调试链接错误 LNK2019: unresolved external symbol。为此,我尝试列出库中应该包含该符号的所有符号。但是,我有两个问题:
1)首先,我对如何以这种形式阅读去错符号感到困惑:
type __cdecl <SYMBOL_NAME> (<X>)
具体来说,我想知道X的含义是什么,它的重要性是什么?另外,交换SYMBOL_NAME和X会导致链接错误吗?
例如,这里是库中符号的(解构)定义:
void __cdecl boost::filesystem::path_traits::convert(char const * __ptr64,char const * __ptr64,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > & __ptr64,class std::codecvt<wchar_t,char,int> const & __ptr64) (void __cdecl boost::filesystem::path_traits::convert(char const *,char const *,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,class std::codecvt<wchar_t,char,int> const &))
这是链接错误:
error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl boost::filesystem3::path_traits::convert(char const *,char const *,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,class std::codecvt<wchar_t,char,int> const &)" (__imp_void __cdecl boost::filesystem3::path_traits::convert(char const * __ptr64,char const * __ptr64,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > & __ptr64,class std::codecvt<wchar_t,char,int> const & __ptr64) referenced in function "public: __cdecl boost::filesystem3::path::path<char const [4]>(char const (&)[4],void *)" (??$?0$$BY03$$CBD@path@filesystem3@boost@@QEAA@AEAY03$$CBDPEAX@Z)
您可以看到未解析的符号和现有符号的SYMBOL_NAME和X交换了。
2)有人对如何解决上面列出的错误有任何想法吗?
任何帮助将不胜感激!