VS2022使用V142 toolset编译静态库之后,使用时链接不成功

发布时间 2023-12-17 22:02:15作者: wsk3q

最近碰到一个奇怪的问题,没找到原因,这里只记录一下现象。

使用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链接则没有问题。

(完)