问题描述
补充:这个问题也会导致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,可能需要登陆微软账号,但是阿里云盘竟然分享不了这个文件 (─.─||)
后面我在一个博客上看见有人说3.75G的安装包有问题,正确的安装包是6.96G,但是我没有去验证,感兴趣的小伙伴可以试试,博客连接在这里:安装Visual Studio 2015(VS2015)时提示安装包JavaScript_ProjectSystem.msi丢失或损坏的解决方法文章来源:https://www.toymoban.com/news/detail-453316.html
参考连接
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文章来源地址https://www.toymoban.com/news/detail-453316.html
到了这里,关于C++ vs2015编译json和protobuf报错nlohmann::detail::static_constnlohmann::detail::to_json_fn::value‘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!