std_system_error_deallocate_message@4

背景

使用vs2019 16.6.0 版本本地编译了 log4cplus.lib 静态库,然后更新到jenkins编译环境,当使用jenkins编译应用程序时,提示

1
2
3
log4cplus.lib(global-init.obj) : error LNK2001: 无法解析的外部符号 
___std_system_error_deallocate_message@4 [D:\Jenkins\workspace\GameChannel2019.git\ClockSvr\ClockSvr.vcxproj]
log4cplus.lib(global-init.obj) : error LNK2001: 无法解析的外部符号 ___std_system_error_allocate_message@8 [D:\Jenkins\workspace\GameChannel2019.git\ClockSvr\ClockSvr.vcxproj]

解决方法

已”std_system_error_deallocate_message”关键字查找了google ,结果记录为2,打开网站,显示的是github ms stl的源码

1
https://github.com/microsoft/STL/blob/master/stl/src/syserror_import_lib.cpp

查看修改记录,估摸应该是新版本有更新,所以原因应该是我本地的vs2019版本依赖了新的stl库,而jenkisn的vs2019 版本过旧,所以升级了jenkin的vs2019版本,编译正常。