VS2022使用V142 toolset编译静态库之后,使用时链接不成功
最近碰到一个奇怪的问题,没找到原因,这里只记录一下现象。
使用vs2022 v142编译的boost库,在链接使用时出错。
libboost_program_options-vc142-mt-s-x32-1_80.lib(options_description.obj) : error LNK2019: unresolved external symbol ___std_count_trivial_1@12 referenced in function "unsigned int __cdecl __std_count_trivial<char,char>(char *,char *,char)" (??$__std_count_trivial@DD@@YAIPAD0D@Z)
fatal error LNK1120: 1 unresolved externals
看起来应该是,链接CRT库相关的问题。
STL容器,居然找不到 count()方法,这不是开玩笑么?!
搜索了两个小时没找到解决办法,于是一时好奇把代码拷贝到虚拟机上,用里面的VS2019编译链接,居然成功了!
这就搞不懂是在VS2022安装 VS2019 v142 toolset 时装漏了一些东西呢,还是哪里有bug导致的了,一时没有头绪?
后来再查了一下,原来从编译boost开始就已经有问题了。
在VS2022上使用时,链接vs2022 v142编译的boost链接有问题,而链接使用vs2019 v142编译的boost链接则没有问题。
(完)