VS2017+Qt5.12 编译报错E2512 功能测试宏的参数必须是简单标识符 的解决方法

1 出现的问题

在搭建好vs2017+qt环境后新建一个qt 空的项目时,编译运行,可以正常运行程序,窗口出现,如下图所示
在这里插入图片描述
但是编译产生错误,经过查阅猜测这个错误是因为VS的智能感知IntelliSense引起的,下面是两个解决方案

2 解决方案

2.1 方法1

生成+IntelliSense 更改为 仅生成,如下图所示,但这样总觉得没有解决问题,经过查阅得到了下面更好的 方法2在这里插入图片描述
在这里插入图片描述

2.2 方法2

我们点击这个错误可以定位到出问题的代码,如下图所示
在这里插入图片描述
这里先贴上解决方法原贴的链接
解决方法帖子
https://forum.qt.io/topic/93711/problem-with-new-visual-studio-update-2017-version-15-8-0-and-qt-5-9-5/20
其中解决方法在 Taytoo 2019年1月31日 下午6:34 处,见下图
在这里插入图片描述
解决方法是在这个头文件中把代码修改一下即可,代码如下

#if defined(__cplusplus)
#if defined(__clang__)
#if QT_HAS_CPP_ATTRIBUTE(clang::fallthrough)
#    define Q_FALLTHROUGH() [[clang::fallthrough]]
#endif
#elif defined(__GNUC__)
#if QT_HAS_CPP_ATTRIBUTE(gnu::fallthrough)
#    define Q_FALLTHROUGH() [[gnu::fallthrough]]
#endif
#elif QT_HAS_CPP_ATTRIBUTE(fallthrough)
#  define Q_FALLTHROUGH() [[fallthrough]]
#endif
#endif

修改后错误消失了,如下图
在这里插入图片描述
这样看着舒服了许多,不知道是不是彻底解决了问题

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值