VS2017 + QT5.9.7 编译异常解决过程

文章讲述了作者在使用QT5.9.7开发时遇到编译错误,尤其是在VS2017环境下,经过两天查找发现是由于库目录设置不正确以及VS++编译器的一些警告和错误。作者分享了解决这些问题的过程和原因,涉及到type_traits库的配置问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QT5.9.7 及VS2017 安装正常,但编译程序,出现很多异常问题,感觉是库目录没有设置对,查了2天,终于解决问题,记录下!

QT源代码: \Qt\5.9.7\Examples\Qt-5.9.7\network\download

1  通过qmake  -tp vc  将 pro 转化为 vcxproj

2   用VS2017打开

编译问题很多,总觉得是配置问题

1>------ 已启动生成: 项目: download, 配置: Debug x64 ------
1>Generate moc_predefs.h
1>MOC main.cpp
1>cl : 命令行 warning D9002: 忽略未知选项“/diagnostics:classic”
1>cl : 命令行 warning D9002: 忽略未知选项“/Zc:inline”
1>cl : 命令行 warning D9002: 忽略未知选项“-Zc:rvalueCast”
1>cl : 命令行 warning D9002: 忽略未知选项“-Zc:inline”
1>cl : 命令行 warning D9002: 忽略未知选项“-Zc:strictStrings”
1>cl : 命令行 warning D9002: 忽略未知选项“-Zc:throwingNew”
1>cl : 命令行 warning D9002: 忽略未知选项“-Zc:referenceBinding”
1>main.cpp
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(9): warning C4083: 应输入“常量”;找到标识符“_STL_WARNING_LEVEL”
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(10): warning C4083: 应输入“)”;找到标识符“_STL_DISABLED_WARNINGS”
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(17): error C2143: 语法错误 : 缺少“;”(在“namespace”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(17): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(20): error C2143: 语法错误 : 缺少“,”(在“...”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(23): error C2061: 语法错误 : 标识符“is_integral_v”
1>        c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(32): 参见对正在编译的类 模板 实例化“std::integer_sequence<_Ty,__formal>”的引用
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(24): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(24): warning C4183: “static_assert”: 缺少返回类型;假定为返回“int”的成员函数
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(26): error C2873: “value_type”: 符号不能用在 using 声明中
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(26): error C2143: 语法错误 : 缺少“;”(在“=”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(26): error C2238: 意外的标记位于“;”之前
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(28): error C2144: 语法错误 : “int”的前面应有“;”
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(28): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(28): error C2146: 语法错误 : 缺少“;”(在标识符“size_t”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(28): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(28): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(29): error C3646: “noexcept”: 未知重写说明符
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(37): error C2988: 不可识别的模板声明/定义
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(37): error C2059: 语法错误 : “using”
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(40): error C2065: “_Vals”: 未声明的标识符
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(40): error C2143: 语法错误 : 缺少“,”(在“...”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(43): error C2059: 语法错误 : “;”
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(45): error C2332: “class”: 缺少标记名
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(51): error C2332: “class”: 缺少标记名
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(51): error C2143: 语法错误 : 缺少“,”(在“...”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(53): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(55): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(59): error C2332: “class”: 缺少标记名
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(59): error C2143: 语法错误 : 缺少“,”(在“...”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(60): error C2065: “_True”: 未声明的标识符
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(60): error C2065: “_Rest”: 未声明的标识符
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(60): error C2143: 语法错误 : 缺少“,”(在“...”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(61): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(62): error C2039: “value”: 不是“_Next”的成员
1>        c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(58) : 参见“_Next”的声明
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(62): error C2065: “_Rest”: 未声明的标识符
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(62): error C2143: 语法错误 : 缺少“,”(在“...”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(62): error C2039: “type”: 不是“`global namespace'”的成员
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(63): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(65): error C2332: “class”: 缺少标记名
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(68): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(69): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(72): error C2332: “class”: 缺少标记名
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(73): error C2065: “_Rest”: 未声明的标识符
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(74): error C2039: “value”: 不是“_First”的成员
1>        c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(50) : 参见“_First”的声明
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(74): error C2065: “_Rest”: 未声明的标识符
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(74): error C2143: 语法错误 : 缺少“,”(在“...”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(75): error C2039: “type”: 不是“`global namespace'”的成员
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(75): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(77): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(79): error C2332: “class”: 缺少标记名
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(80): error C2039: “value”: 不是“`global namespace'”的成员
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(85): error C2332: “class”: 缺少标记名
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(85): error C2143: 语法错误 : 缺少“,”(在“...”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(87): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(89): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(93): error C2332: “class”: 缺少标记名
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(93): error C2143: 语法错误 : 缺少“,”(在“...”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(94): error C2065: “_False”: 未声明的标识符
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(94): error C2065: “_Rest”: 未声明的标识符
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(94): error C2143: 语法错误 : 缺少“,”(在“...”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(95): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\include\type_traits(96): error C2039: “value”: 不是“_Next”的成员
 

原因是VC++ 目录 的参数发生了变化

默认生成的,这个是错的,不知道为啥,会这样

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值