2

リンクエラー LNK2019: unresolved external symbolをデバッグしようとしていました。そうするために、そのシンボルを含むはずのライブラリ内のすべてのシンボルをリストしようとしました。ただし、次の 2 つの質問があります。

1) まず、デマングルされたシンボルを次の形式で読み取る方法について混乱しています。

type __cdecl <SYMBOL_NAME> (<X>)

具体的には、Xの意味とその重要性について考えていました。また、SYMBOL_NAMEXを入れ替えるとリンク エラーが発生する可能性はありますか?

たとえば、ライブラリ内のシンボルの (デマングルされた) 定義は次のとおりです。

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_NAMEXが入れ替わっていることがわかります。

2) 上記のエラーを解決する方法について何か考えがある人はいますか?

どんな助けでも大歓迎です!

4

1 に答える 1