本地用 vs2019 编译 libprotobuf 静态库, 然后放到正式项目里编译,没问题。 结果在编译服务器 编译 最后link却报错: 7>目标 Link: 7> libprotobufd.lib(any.obj) : error LNK2001: 无法解析的外部符号 __imp___std_init_once_begin_initialize 7> libprotobufd.lib(implicit_weak_message.obj) : error LNK2001: 无法解析的外部符号 __imp___std_init_once_begin_initialize 7> libprotobufd.lib(map_field.obj) : error LNK2001: 无法解析的外部符号 __imp___std_init_once_begin_initialize 7> libprotobufd.lib(descriptor.pb.obj) : error LNK2001: 无法解析的外部符号 __imp___std_init_once_begin_initialize 7> libprotobufd.lib(dynamic_message.obj) : error LNK2001: 无法解析的外部符号 __imp___std_init_once_begin_initialize 7> libprotobufd.lib(text_format.obj) : error LNK2001: 无法解析的外部符号 __imp___std_init_once_begin_initialize 7> libprotobufd.lib(common.obj) : error LNK2001: 无法解析的外部符号 __imp___std_init_once_begin_initialize
5> libprotobufd.lib(any.obj) : error LNK2001: 无法解析的外部符号 __imp___std_init_once_complete 5> libprotobufd.lib(implicit_weak_message.obj) : error LNK2001: 无法解析的外部符号 __imp___std_init_once_complete 5> libprotobufd.lib(map_field.obj) : error LNK2001: 无法解析的外部符号 __imp___std_init_once_complete 5> libprotobufd.lib(descriptor.pb.obj) : error LNK2001: 无法解析的外部符号 __imp___std_init_once_complete 5> libprotobufd.lib(dynamic_message.obj) : error LNK2001: 无法解析的外部符号 __imp___std_init_once_complete 5> libprotobufd.lib(text_format.obj) : error LNK2001: 无法解析的外部符号 __imp___std_init_once_complete 查找资料无果。 目前推测编译的环境不同导致的。 查了一下 两边 vs2019 版本还是有差异的编库的是16.8.1 .net framework 4.8.04084 一个 16.4.2 .net framework 4.7.03062 一台 windows sdk最高版本 10.0.18362.0, 一台windows sdk最高版本 10.0.17763.0, 都用 10.0.17763.0编译, 还是没用。 最后在低版本的电脑上编库,目前暂时没问题。 后面没时间研究到底是哪个版本不对。 反正一个项目组,vs环境和补丁版本最好一致....