锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / yaml-cpp / error LNK2019:无法解析的外部符号
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品原创文章,禁止转载和任何形式的非法内容使用,违者必究


error LNK2019:无法解析的外部符号

 

近期编译librime,使用yaml-cpp,出现下面的链接错误:。

config_data.obj : error LNK2019: 无法解析的外部符号  "__declspec(dllimport) public: __thiscall YAML::Emitter::Emitter(class  std::basic_ostream<char,struct std::char_traits<char> >  &)" (__imp_??0Emitter@YAML@@QAE@AAV?$basic_ostream@DU?$char_traits
@D@std@@@std@@@Z),函数 "public: bool __thiscall rime::ConfigData::SaveToStream(class std::basic_ostream<char,struct std::char_traits<char> > &)" (?SaveToStream@ConfigData@rime@@QAE_NAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@@Z) 中引用了
该符号 [D:\librime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall YAML::Emitter::~Emitter(void)" (__imp_??1Emitter@YAML@@QAE@XZ),函数 "public: bool __thiscall rime::ConfigData::SaveToStream(class std::basic_ostream<char
,struct std::char_traits<char> > &)" (?SaveToStream@ConfigData@rime@@QAE_NAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class YAML::Emitter & __thiscall YAML::Emitter::SetLocalValue(enum YAML::EMITTER_MANIP)" (__imp_?SetLocalValue@Emitter@YAML@@QAEAAV12@W4EMITTER_MANIP@2@@Z),函数 "vo
id __cdecl rime::EmitScalar(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class YAML::Emitter *)" (?EmitScalar@rime@@YAXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PA
VEmitter@YAML@@@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class YAML::Emitter & __thiscall YAML::Emitter::Write(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_?Wr
ite@Emitter@YAML@@QAEAAV12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z),函数 "void __cdecl rime::EmitScalar(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class YAML:
:Emitter *)" (?EmitScalar@rime@@YAXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVEmitter@YAML@@@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall YAML::BadConversion::BadConversion(struct YAML::Mark const &)" (__imp_??0BadConversion@YAML@@QAE@ABUMark@1@@Z),函数 "public: __thiscall YAML::TypedBadCon
version<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::TypedBadConversion<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >(struct YAML::Mark const &)"
(??0?$TypedBadConversion@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@YAML@@QAE@ABUMark@1@@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall YAML::BadConversion::BadConversion(class YAML::BadConversion const &)" (__imp_??0BadConversion@YAML@@QAE@ABV01@@Z),函数 "public: __thiscall YAML::TypedBa
dConversion<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::TypedBadConversion<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >(class YAML::TypedBadConv
ersion<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > const &)" (??0?$TypedBadConversion@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@YAML@@QAE@ABV01@@Z) 中引用了该符号 [D:\librime-m
aster\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall YAML::Node::Node(void)" (__imp_??0Node@YAML@@QAE@XZ),函数 "public: struct YAML::detail::iterator_value const __thiscall YAML::detail::iterator_base<struc
t YAML::detail::iterator_value const >::operator*(void)const " (??D?$iterator_base@$$CBUiterator_value@detail@YAML@@@detail@YAML@@QBE?BUiterator_value@12@XZ) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall YAML::Node::Node(class YAML::Node const &)" (__imp_??0Node@YAML@@QAE@ABV01@@Z),函数 "public: struct YAML::detail::iterator_base<struct YAML::detail::iter
ator_value const >::proxy __thiscall YAML::detail::iterator_base<struct YAML::detail::iterator_value const >::operator->(void)const " (??C?$iterator_base@$$CBUiterator_value@detail@YAML@@@detail@YAML@@QBE?AUproxy@012@XZ) 中引用了该符号 [D:\lib
rime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall YAML::Node::~Node(void)" (__imp_??1Node@YAML@@QAE@XZ),函数 "public: __thiscall YAML::detail::iterator_value::~iterator_value(void)" (??1iterator_value@de
tail@YAML@@QAE@XZ) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: struct YAML::Mark __thiscall YAML::Node::Mark(void)const " (__imp_?Mark@Node@YAML@@QBE?AU02@XZ),函数 "public: class std::basic_string<char,struct std::char_traits<c
har>,class std::allocator<char> > __thiscall YAML::Node::as<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >(void)const " (??$as@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Nod
e@YAML@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class YAML::detail::iterator_base<struct YAML::detail::iterator_value const > __thiscall YAML::Node::begin(void)const " (__imp_?begin@Node@YAML@@QBE?AV?$iterator_
base@$$CBUiterator_value@detail@YAML@@@detail@2@XZ),函数 "class std::shared_ptr<class rime::ConfigItem> __cdecl rime::ConvertFromYaml(class YAML::Node const &,class rime::ConfigCompiler *)" (?ConvertFromYaml@rime@@YA?AV?$shared_ptr@VConfi
gItem@rime@@@std@@ABVNode@YAML@@PAVConfigCompiler@1@@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class YAML::detail::iterator_base<struct YAML::detail::iterator_value const > __thiscall YAML::Node::end(void)const " (__imp_?end@Node@YAML@@QBE?AV?$iterator_base
@$$CBUiterator_value@detail@YAML@@@detail@2@XZ),函数 "class std::shared_ptr<class rime::ConfigItem> __cdecl rime::ConvertFromYaml(class YAML::Node const &,class rime::ConfigCompiler *)" (?ConvertFromYaml@rime@@YA?AV?$shared_ptr@VConfigIte
m@rime@@@std@@ABVNode@YAML@@PAVConfigCompiler@1@@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) private: __thiscall YAML::Node::Node(enum YAML::Node::Zombie)" (__imp_??0Node@YAML@@AAE@W4Zombie@01@@Z),函数 "public: struct YAML::detail::iterator_value const __thiscall Y
AML::detail::iterator_base<struct YAML::detail::iterator_value const >::operator*(void)const " (??D?$iterator_base@$$CBUiterator_value@detail@YAML@@@detail@YAML@@QBE?BUiterator_value@12@XZ) 中引用了该符号 [D:\librime-master\build\src\rime.vcxp
roj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) private: __thiscall YAML::Node::Node(class YAML::detail::node &,class std::shared_ptr<class YAML::detail::memory_holder>)" (__imp_??0Node@YAML@@AAE@AAVnode@detail@1@V?$sh
ared_ptr@Vmemory_holder@detail@YAML@@@std@@@Z),函数 "public: struct YAML::detail::iterator_value const __thiscall YAML::detail::iterator_base<struct YAML::detail::iterator_value const >::operator*(void)const " (??D?$iterator_base@$$CBUite
rator_value@detail@YAML@@@detail@YAML@@QBE?BUiterator_value@12@XZ) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) class YAML::Node __cdecl YAML::Load(class std::basic_istream<char,struct std::char_traits<char> > &)" (__imp_?Load@YAML@@YA?AVNode@1@AAV?$basic_istream@DU?$char_traits@D@
std@@@std@@@Z),函数 "public: bool __thiscall rime::ConfigData::LoadFromStream(class std::basic_istream<char,struct std::char_traits<char> > &)" (?LoadFromStream@ConfigData@rime@@QAE_NAAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z)  中引用
了该符号 [D:\librime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) class YAML::Node __cdecl YAML::LoadFile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_?LoadFile@YAML@@YA?AVNode
@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z),函数 "public: bool __thiscall rime::ConfigData::LoadFromFile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class rime
::ConfigCompiler *)" (?LoadFromFile@ConfigData@rime@@QAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVConfigCompiler@2@@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
config_data.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall YAML::BadConversion::BadConversion(class YAML::BadConversion const &)" (??0BadConversion@YAML@@QAE@ABV01@@Z) [D:\librime-master\build\src\rime.vcxproj]
libboost_regex-vc142-mt-x32-1_74.lib(regex_traits_defaults.obj) : error LNK2019: 无法解析的外部符号 __imp__towupper,函数 "unsigned short __fastcall boost::re_detail_107400::do_global_upper(unsigned short)" (?do_global_upper@re_detail_107400@boost@
@YIGG@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
glog.lib(logging.obj) : error LNK2019: 无法解析的外部符号 __imp___stricmp,函数 "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > * __cdecl google::CheckstrcasecmpfalseImpl(char const *,char const *,char const
*)" (?CheckstrcasecmpfalseImpl@google@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD00@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
glog.lib(logging.obj) : error LNK2019: 无法解析的外部符号 __imp__perror,函数 "public: virtual void __thiscall google::`anonymous namespace'::LogFileObject::Write(bool,__int64,char const *,unsigned int)" (?Write@LogFileObject@?A0x248eae43@google@@U
AEX_N_JPBDI@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
glog.lib(logging.obj) : error LNK2019: 无法解析的外部符号 __imp___fdopen,函数 "private: bool __thiscall google::`anonymous namespace'::LogFileObject::CreateLogfile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<cha
r> > const &)" (?CreateLogfile@LogFileObject@?A0x248eae43@google@@AAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
glog.lib(logging.obj) : error LNK2019: 无法解析的外部符号 __imp___pclose,函数 "bool __cdecl google::SendEmailInternal(char const *,char const *,char const *,bool)" (?SendEmailInternal@google@@YA_NPBD00_N@Z) 中引用了该符号 [D:\librime-master\build\src\rim
e.vcxproj]
glog.lib(logging.obj) : error LNK2019: 无法解析的外部符号 __imp___popen,函数 "bool __cdecl google::SendEmailInternal(char const *,char const *,char const *,bool)" (?SendEmailInternal@google@@YA_NPBD00_N@Z) 中引用了该符号 [D:\librime-master\build\src\rime
.vcxproj]
glog.lib(logging.obj) : error LNK2019: 无法解析的外部符号 __imp__unlink,函数 "private: bool __thiscall google::`anonymous namespace'::LogFileObject::CreateLogfile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char
> > const &)" (?CreateLogfile@LogFileObject@?A0x248eae43@google@@AAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
OLDNAMES.lib(unlink.obi) : error LNK2001: 无法解析的外部符号 __imp__unlink [D:\librime-master\build\src\rime.vcxproj]
glog.lib(logging.obj) : error LNK2019: 无法解析的外部符号 __imp___difftime64,函数 "private: class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char
,struct std::char_traits<char>,class std::allocator<char> > > > __thiscall google::`anonymous namespace'::LogCleaner::GetOverdueLogNames(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,unsigned in
t,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)const " (?GetOverdueLogNames@LogCleaner@?A
0x248eae43@google@@ABE?AV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@
@5@IABV65@1@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
glog.lib(logging.obj) : error LNK2019: 无法解析的外部符号 __imp___mktime64,函数 "public: __thiscall google::LogMessageTime::LogMessageTime(struct tm)" (??0LogMessageTime@google@@QAE@Utm@@@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
glog.lib(logging.obj) : error LNK2019: 无法解析的外部符号 __imp___access,函数 "void __cdecl google::GetExistingTempDirectories(class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::all
ocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > *)" (?GetExistingTempDirectories@google@@YAXPAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$bas
ic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
glog.lib(utilities.obj) : error LNK2019: 无法解析的外部符号 __imp___getpid,函数 "void __cdecl google::glog_internal_namespace_::`dynamic initializer for 'g_main_thread_pid''(void)" (??__Eg_main_thread_pid@glog_internal_namespace_@google@@YAXXZ) 中引
用了该符号 [D:\librime-master\build\src\rime.vcxproj]
glog.lib(vlog_is_on.obj) : error LNK2019: 无法解析的外部符号 __imp____stdio_common_vsscanf,函数 _sscanf 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
OLDNAMES.lib(unlink.obi) : error LNK2001: 无法解析的外部符号 __imp___unlink [D:\librime-master\build\src\rime.vcxproj]
MSVCRT.lib(chandler4gs.obj) : error LNK2019: 无法解析的外部符号 __except_handler4_common,函数 __except_handler4 中引用了该符号 [D:\librime-master\build\src\rime.vcxproj]
D:\librime-master\build\lib\Release\rime.dll : fatal error LNK1120: 31 个无法解析的外部命令 [D:\librime-master\build\src\rime.vcxproj]

链接找不到符号,无法解析的外部符号,一般是头文件对应的库没有,或者库版本不对,库的Debug或release模式不匹配,原理知道,但是实际的环境查找很复杂,本例里,用cmake在控制台里编译出错,在VS里编译照样出错,我也尝试补充环境,但是没有解决问题。

后来按照作者的Windows下编译流程,按步骤原封不动处理,就没有这要的错误了。步骤第一步里用git下载环境非常重要,我是自己下载的zip组织出来的代码,不知道哪里匹配不了,就出错了。用开源一定要看好说明,要找和环境匹配的说明,比如Windows下和Linux下是2个环境,要用不同的处理方式。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内