본문 바로가기

운동하는 개발자/c++

boost::log 링크 에러 error LNK2038: mismatch detected for 'boost_log_abi': value 'v2s_mt_nt62' doesn't match value 'v2s_mt_nt6' in checklist.obj

728x90

boost::log 사용 중 잘 작동하던 코드에서 기능을 추가하다 보니 갑자기 링크에러가 발생했다

1>utils.obj : error LNK2038: mismatch detected for 'boost_log_abi': value 'v2s_mt_nt62' doesn't match value 'v2s_mt_nt6' in checklist.obj
1>utils.obj : error LNK2019: unresolved external symbol "public: __thiscall boost::log::v2s_mt_nt62::attribute_set::attribute_set(void)" (??0attribute_set@v2s_mt_nt62@log@boost@@QAE@XZ) referenced in function "public: __thiscall boost::log::v2s_mt_nt62::sources::basic_logger<char,class boost::log::v2s_mt_nt62::sources::logger_mt,struct boost::log::v2s_mt_nt62::sources::multi_thread_model<class boost::log::v2s_mt_nt62::aux::light_rw_mutex> >::basic_logger<char,class boost::log::v2s_mt_nt62::sources::logger_mt,struct boost::log::v2s_mt_nt62::sources::multi_thread_model<class boost::log::v2s_mt_nt62::aux::light_rw_mutex> >(void)" (??0?$basic_logger@DVlogger_mt@sources@v2s_mt_nt62@log@boost@@U?$multi_thread_model@Vlight_rw_mutex@aux@v2s_mt_nt62@log@boost@@@2345@@sources@v2s_mt_nt62@log@boost@@QAE@XZ)
1>utils.obj : error LNK2019: unresolved external symbol "public: __thiscall boost::log::v2s_mt_nt62::attribute_set::~attribute_set(void)" (??1attribute_set@v2s_mt_nt62@log@boost@@QAE@XZ) referenced in function "public: __thiscall boost::log::v2s_mt_nt62::sources::basic_logger<char,class boost::log::v2s_mt_nt62::sources::logger_mt,struct boost::log::v2s_mt_nt62::sources::multi_thread_model<class boost::log::v2s_mt_nt62::aux::light_rw_mutex> >::~basic_logger<char,class boost::log::v2s_mt_nt62::sources::logger_mt,struct boost::log::v2s_mt_nt62::sources::multi_thread_model<class boost::log::v2s_mt_nt62::aux::light_rw_mutex> >(void)" (??1?$basic_logger@DVlogger_mt@sources@v2s_mt_nt62@log@boost@@U?$multi_thread_model@Vlight_rw_mutex@aux@v2s_mt_nt62@log@boost@@@2345@@sources@v2s_mt_nt62@log@boost@@QAE@XZ)
1>utils.obj : error LNK2019: unresolved external symbol "public: static void __cdecl boost::log::v2s_mt_nt62::record_view::public_data::destroy(struct boost::log::v2s_mt_nt62::record_view::public_data const )" (?destroy@public_data@record_view@v2s_mt_nt62@log@boost@@SAXPBU12345@@Z) referenced in function "public: void __thiscall boost::log::v2s_mt_nt62::record::reset(void)" (?reset@record@v2s_mt_nt62@log@boost@@QAEXXZ)
1>utils.obj : error LNK2019: unresolved external symbol "public: static class boost::shared_ptr<class boost::log::v2s_mt_nt62::core> __cdecl boost::log::v2s_mt_nt62::core::get(void)" (?get@core@v2s_mt_nt62@log@boost@@SA?AV?$shared_ptr@Vcore@v2s_mt_nt62@log@boost@@@4@XZ) referenced in function "public: __thiscall boost::log::v2s_mt_nt62::sources::basic_logger<char,class boost::log::v2s_mt_nt62::sources::logger_mt,struct boost::log::v2s_mt_nt62::sources::multi_thread_model<class boost::log::v2s_mt_nt62::aux::light_rw_mutex> >::basic_logger<char,class boost::log::v2s_mt_nt62::sources::logger_mt,struct boost::log::v2s_mt_nt62::sources::multi_thread_model<class boost::log::v2s_mt_nt62::aux::light_rw_mutex> >(void)" (??0?$basic_logger@DVlogger_mt@sources@v2s_mt_nt62@log@boost@@U?$multi_thread_model@Vlight_rw_mutex@aux@v2s_mt_nt62@log@boost@@@2345@@sources@v2s_mt_nt62@log@boost@@QAE@XZ)
1>utils.obj : error LNK2019: unresolved external symbol "public: bool __thiscall boost::log::v2s_mt_nt62::core::get_logging_enabled(void)const " (?get_logging_enabled@core@v2s_mt_nt62@log@boost@@QBE_NXZ) referenced in function "public: class boost::log::v2s_mt_nt62::record __thiscall boost::log::v2s_mt_nt62::sources::basic_composite_logger<char,class boost::log::v2s_mt_nt62::sources::logger_mt,struct boost::log::v2s_mt_nt62::sources::multi_thread_model<class boost::log::v2s_mt_nt62::aux::light_rw_mutex>,struct boost::log::v2s_mt_nt62::sources::features<> >::open_record<struct boost::parameter::aux::tagged_argument_list_of_1<class boost::parameter::aux::tagged_argument<struct boost::log::v2s_mt_nt62::keywords::tag::severity,enum boost::log::v2s_mt_nt62::trivial::severity_level const > > >(struct boost::parameter::aux::tagged_argument_list_of_1<class boost::parameter::aux::tagged_argument<struct boost::log::v2s_mt_nt62::keywords::tag::severity,enum boost::log::v2s_mt_nt62::trivial::severity_level const > > const &)" (??$open_record@U?$tagged_argument_list_of_1@V?$tagged_argument@Useverity@tag@keywords@v2s_mt_nt62@log@boost@@$$CBW4severity_level@trivial@456@@aux@parameter@boost@@@aux@parameter@boost@@@?$basic_composite_logger@DVlogger_mt@sources@v2s_mt_nt62@log@boost@@U?$multi_thread_model@Vlight_rw_mutex@aux@v2s_mt_nt62@log@boost@@@2345@U?$features@$$V@2345@@sources@v2s_mt_nt62@log@boost@@QAE?AVrecord@234@ABU?$tagged_argument_list_of_1@V?$tagged_argument@Useverity@tag@keywords@v2s_mt_nt62@log@boost@@$$CBW4severity_level@trivial@456@@aux@parameter@boost@@@aux@parameter@4@@Z)
1>utils.obj : error LNK2019: unresolved external symbol "public: class boost::log::v2s_mt_nt62::record __thiscall boost::log::v2s_mt_nt62::core::open_record(class boost::log::v2s_mt_nt62::attribute_set const &)" (?open_record@core@v2s_mt_nt62@log@boost@@QAE?AVrecord@234@ABVattribute_set@234@@Z) referenced in function "protected: class boost::log::v2s_mt_nt62::record __thiscall boost::log::v2s_mt_nt62::sources::basic_logger<char,class boost::log::v2s_mt_nt62::sources::logger_mt,struct boost::log::v2s_mt_nt62::sources::multi_thread_model<class boost::log::v2s_mt_nt62::aux::light_rw_mutex> >::open_record_unlocked<struct boost::parameter::aux::tagged_argument_list_of_1<class boost::parameter::aux::tagged_argument<struct boost::log::v2s_mt_nt62::keywords::tag::severity,enum boost::log::v2s_mt_nt62::trivial::severity_level const > > >(struct boost::parameter::aux::tagged_argument_list_of_1<class boost::parameter::aux::tagged_argument<struct boost::log::v2s_mt_nt62::keywords::tag::severity,enum boost::log::v2s_mt_nt62::trivial::severity_level const > > const &)" (??$open_record_unlocked@U?$tagged_argument_list_of_1@V?$tagged_argument@Useverity@tag@keywords@v2s_mt_nt62@log@boost@@$$CBW4severity_level@trivial@456@@aux@parameter@boost@@@aux@parameter@boost@@@?$basic_logger@DVlogger_mt@sources@v2s_mt_nt62@log@boost@@U?$multi_thread_model@Vlight_rw_mutex@aux@v2s_mt_nt62@log@boost@@@2345@@sources@v2s_mt_nt62@log@boost@@IAE?AVrecord@234@ABU?$tagged_argument_list_of_1@V?$tagged_argument@Useverity@tag@keywords@v2s_mt_nt62@log@boost@@$$CBW4severity_level@trivial@456@@aux@parameter@boost@@@aux@parameter@4@@Z)
1>utils.obj : error LNK2019: unresolved external symbol "private: void __thiscall boost::log::v2s_mt_nt62::core::push_record_move(class boost::log::v2s_mt_nt62::record &)" (?push_record_move@core@v2s_mt_nt62@log@boost@@AAEXAAVrecord@234@@Z) referenced in function "public: void __thiscall boost::log::v2s_mt_nt62::core::push_record(class boost::log::v2s_mt_nt62::record &&)" (?push_record@core@v2s_mt_nt62@log@boost@@QAEX$$QAVrecord@234@@Z)
1>utils.obj : error LNK2019: unresolved external symbol "char const * __cdecl boost::log::v2s_mt_nt62::trivial::to_string<char>(enum boost::log::v2s_mt_nt62::trivial::severity_level)" (??$to_string@D@trivial@v2s_mt_nt62@log@boost@@YAPBDW4severity_level@0123@@Z) referenced in function "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl boost::log::v2s_mt_nt62::trivial::operator<<<char,struct std::char_traits<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,enum boost::log::v2s_mt_nt62::trivial::severity_level)" (??$?6DU?$char_traits@D@std@@@trivial@v2s_mt_nt62@log@boost@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV45@W4severity_level@0123@@Z)
1>utils.obj : error LNK2019: unresolved external symbol "public: void __thiscall boost::log::v2s_mt_nt62::aux::once_block_sentry::commit(void)" (?commit@once_block_sentry@aux@v2s_mt_nt62@log@boost@@QAEXXZ) referenced in function "public: static class boost::shared_ptr<struct boost::log::v2s_mt_nt62::sources::aux::logger_holder<class boost::log::v2s_mt_nt62::sources::logger_mt> > & __cdecl boost::log::v2s_mt_nt62::aux::lazy_singleton<struct boost::log::v2s_mt_nt62::sources::aux::logger_singleton<struct global_lg>,class boost::shared_ptr<struct boost::log::v2s_mt_nt62::sources::aux::logger_holder<class boost::log::v2s_mt_nt62::sources::logger_mt> > >::get(void)" (?get@?$lazy_singleton@U?$logger_singleton@Uglobal_lg@@@aux@sources@v2s_mt_nt62@log@boost@@V?$shared_ptr@U?$logger_holder@Vlogger_mt@sources@v2s_mt_nt62@log@boost@@@aux@sources@v2s_mt_nt62@log@boost@@@6@@aux@v2s_mt_nt62@log@boost@@SAAAV?$shared_ptr@U?$logger_holder@Vlogger_mt@sources@v2s_mt_nt62@log@boost@@@aux@sources@v2s_mt_nt62@log@boost@@@5@XZ)
1>utils.obj : error LNK2019: unresolved external symbol "private: bool __thiscall boost::log::v2s_mt_nt62::aux::once_block_sentry::enter_once_block(void)const " (?enter_once_block@once_block_sentry@aux@v2s_mt_nt62@log@boost@@ABE_NXZ) referenced in function "public: bool __thiscall boost::log::v2s_mt_nt62::aux::once_block_sentry::executed(void)const " (?executed@once_block_sentry@aux@v2s_mt_nt62@log@boost@@QBE_NXZ)
1>utils.obj : error LNK2019: unresolved external symbol "private: void __thiscall boost::log::v2s_mt_nt62::aux::once_block_sentry::rollback(void)" (?rollback@once_block_sentry@aux@v2s_mt_nt62@log@boost@@AAEXXZ) referenced in function "public: __thiscall boost::log::v2s_mt_nt62::aux::once_block_sentry::~once_block_sentry(void)" (??1once_block_sentry@aux@v2s_mt_nt62@log@boost@@QAE@XZ)
1>utils.obj : error LNK2019: unresolved external symbol "public: static class boost::shared_ptr<struct boost::log::v2s_mt_nt62::sources::aux::logger_holder_base> __cdecl boost::log::v2s_mt_nt62::sources::aux::global_storage::get_or_init(class boost::typeindex::stl_type_index,class boost::shared_ptr<struct boost::log::v2s_mt_nt62::sources::aux::logger_holder_base> (__cdecl)(void))" (?get_or_init@global_storage@aux@sources@v2s_mt_nt62@log@boost@@SA?AV?$shared_ptr@Ulogger_holder_base@aux@sources@v2s_mt_nt62@log@boost@@@6@Vstl_type_index@typeindex@6@P6A?AV76@XZ@Z) referenced in function "public: static void __cdecl boost::log::v2s_mt_nt62::sources::aux::logger_singleton<struct global_lg>::init_instance(void)" (?init_instance@?$logger_singleton@Uglobal_lg@@@aux@sources@v2s_mt_nt62@log@boost@@SAXXZ)
1>utils.obj : error LNK2019: unresolved external symbol "void __cdecl boost::log::v2s_mt_nt62::sources::aux::throw_odr_violation(class boost::typeindex::stl_type_index,class boost::typeindex::stl_type_index,struct boost::log::v2s_mt_nt62::sources::aux::logger_holder_base const &)" (?throw_odr_violation@aux@sources@v2s_mt_nt62@log@boost@@YAXVstl_type_index@typeindex@5@0ABUlogger_holder_base@12345@@Z) referenced in function "public: static void __cdecl boost::log::v2s_mt_nt62::sources::aux::logger_singleton<struct global_lg>::init_instance(void)" (?init_instance@?$logger_singleton@Uglobal_lg@@@aux@sources@v2s_mt_nt62@log@boost@@SAXXZ)
1>utils.obj : error LNK2019: unresolved external symbol "public: static struct boost::log::v2s_mt_nt62::aux::stream_provider<char>::stream_compound * __cdecl boost::log::v2s_mt_nt62::aux::stream_provider<char>::allocate_compound(class boost::log::v2s_mt_nt62::record &)" (?allocate_compound@?$stream_provider@D@aux@v2s_mt_nt62@log@boost@@SAPAUstream_compound@12345@AAVrecord@345@@Z) referenced in function "public: __thiscall boost::log::v2s_mt_nt62::aux::record_pump<class boost::log::v2s_mt_nt62::sources::logger_mt>::record_pump<class boost::log::v2s_mt_nt62::sources::logger_mt>(class boost::log::v2s_mt_nt62::sources::logger_mt &,class boost::log::v2s_mt_nt62::record &)" (??0?$record_pump@Vlogger_mt@sources@v2s_mt_nt62@log@boost@@@aux@v2s_mt_nt62@log@boost@@QAE@AAVlogger_mt@sources@234@AAVrecord@234@@Z)

뜬금없이 잘 쓰던 코드가 왜..?

내용만 보면 뭔가 내가 과거 버전의 API를 호출한것 처럼 보였고 관련해서 찾아보고 이래 저래해봤는데
정확한 이유는 결국 못 찾았고 이유와 해결책을 알아냈는데 정말 뜬금없었다

#include <windows.h>를 추가 한 뒤부터 해당 컴파일 에러가 발생했고 해결책은

#include <Windows.h>
#include <boost/log.hpp>​

예를 들어 이런 식으로 windows.h를 먼저 include 하면 발생했다...

위아래 순서만 바꿔주고 해결...

뭘까...? 끝..


 

728x90