C++ vs2015编译json和protobuf报错nlohmann::detail::static_constnlohmann::detail::to_json_fn::value‘

目录

  • 问题描述
  • 解决方案
  • 参考连接

问题描述

补充:这个问题也会导致protobuf编译和使用报错,按照本方法修复后问题解决
只要引入项目中的 #include “nlohmann/json.hpp” 用vs2015编译就会报错,甚至用vs2022的Visual Studio 2015 (v140)工具集编译也会报同样的错误,错误信息如下:

nlohmann::detail::static_constnlohmann::detail::to_json_fn::value': in-class initialization for type 'const T' is not yet implemented; static member will remain uninitialized at runtime but use in constant-expressions is supported...

参考这篇博客“JSON for Modern C++ vs2015 企业版和专业版编译错误”可知是MSVC 的问题,但是不管重装vs2015多少次,专业版和社区版都试过仍没解决问题,我怀疑是每次安装的时候都提示安装包损坏或丢失有关,但是用这里面的方法都没解决问题“四种解决VS2015安装包损坏或丢失的方法”

解决方案


20220817 修改:
经过我后来测试,直接安装Microsoft Visual C++ Build Tools可能会提示你已安装vs,需要先卸载安装的vs2015,然后先把Microsoft Visual C++ Build Tools安装好,再把vs2015安装好。我还遇到过安装好后的vs2015无法打开资源视图的情况,是通过下载DirectX修复工具增强版修复DLL解决的。(太麻烦了,要不是项目用到vs2015,绝对不会这么折腾。。。)


我最后的解决办法是在微软官网下载的Microsoft Visual C++ Build Tools点击修改,会将vs2015的build环境重新安装一遍,问题就解决了。下载连接放这里了:https://my.visualstudio.com/Downloads?q=visual%20studio%202015&wt.mc_id=omsftvscom~older-downloads,可能需要登陆微软账号,但是阿里云盘竟然分享不了这个文件 (─.─||)
C++ vs2015编译json和protobuf报错nlohmann::detail::static_constnlohmann::detail::to_json_fn::value‘_第1张图片

后面我在一个博客上看见有人说3.75G的安装包有问题,正确的安装包是6.96G,但是我没有去验证,感兴趣的小伙伴可以试试,博客连接在这里:安装Visual Studio 2015(VS2015)时提示安装包JavaScript_ProjectSystem.msi丢失或损坏的解决方法

参考连接

1、JSON for Modern C++ vs2015 企业版和专业版编译错误
https://blog.csdn.net/weixin_33841722/article/details/91693116
2、四种解决VS2015安装包损坏或丢失的方法
https://blog.csdn.net/hs_2017112123/article/details/122107693
3、安装Visual Studio 2015(VS2015)时提示安装包JavaScript_ProjectSystem.msi丢失或损坏的解决方法 https://blog.csdn.net/wenhao_ir/article/details/124971021

你可能感兴趣的:(c++,json,microsoft)