解决Qt引入QtWebApp的模块后报错error C2440: “=”: 无法从“_Ty”转换为“T”问题

1、开发环境

win11-64 + qt5.12 + msvs2017-64bit-release

2、问题描述:

在项目中需要引入QtWebApp的httpsever,logging,templateengine三个模块。

刚开始用的没啥问题,有一天更新了下vs的小版本,然后编译报错:

error C2440: “=”: 无法从“_Other”转换为“_Ty”

error C2440: “reinterpret_cast”: 无法从“int”转换为“quintptr”

排查了好久,VS和Windows Kits版本都卸载装回了原来的版本,还是报错,就差重装系统了。

又仔细排查了报错,提示无法从int转换为qunitptr,可是nullptr怎么是int呢?

最终发现httpglobal.h发现有重定义nullptr,问题就出在这个为什么导致重定义上?

问题就出在这个__cplusplus上,查阅资料发现,这个是vs的历史遗留问题,增加编译选项 -Zc:__cplusplus即可

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值