当前位置: 首页 > backend >正文

解决qt5.9.4和2015配置xilinx上位机报错问题

解决 Qt 5.9.4 MSVC 版本的头文件冲突问题

核心原则是保持 MSVC CRT 头文件的优先级,避免强制替换为 Windows Kits 的 stdlib.h,否则会导致宏缺失或调用约定错误(如 __cdecl)。以下是具体解决方案:

确保 INCLUDEPATH 顺序正确
Qt 工程可以保留 Windows Kits 的路径,但必须确保 MSVC CRT 头文件路径在前,Windows Kits 路径在后。这样既能使用 MSVC 的 CRT 头文件,又能兼容 UCRT。

推荐 .pro 配置
在 Qt 项目的 .pro 文件中添加以下路径,确保 MSVC CRT 优先:

# MSVC 自带 CRT 优先
INCLUDEPATH = $$[QT_INSTALL_PREFIX]/msvc2015_64/include \"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include" \"C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/ucrt" \"C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/shared" \"C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um"

检查宏污染
确认项目中没有错误定义以下宏,否则可能导致编译冲突:

#define __cdecl
#define WINAPI
#define FAR

如果存在这些宏,需删除或使用 #undef 取消定义。

验证工具链
确保 Qt Creator 的 Kit 配置正确:

  • 选择 Qt 5.9.4 msvc2015_64
  • 使用 MSVC2015 x64 编译器

在命令行执行以下命令,检查 stdlib.hwinnt.h 的来源:

cl /showIncludes main.cpp

确保 stdlib.h 来自 MSVC CRT 路径,而 winnt.h 来自 Windows Kits 的 ucrtsharedum 目录。

常见问题与解决方案

问题解决方案
__cdecl 未识别不要使用 Windows Kits 的 stdlib.h,保持 MSVC CRT 头文件优先
winnt.h 报错确保 INCLUDEPATH 顺序为 ucrtsharedum
Qt 5.9.0 正常,5.9.4 出错Qt 5.9.4 强制使用 Windows 10 SDK,需严格检查宏和调用约定

结论
使用 Qt 官方配置的 MSVC CRT + Windows Kits,避免手动替换 stdlib.h,即可解决编译错误。

http://www.xdnf.cn/news/18748.html

相关文章:

  • Linux 详谈Ext系列⽂件系统(一)
  • Unity使用Sprite切割大图
  • 深度学习入门:从概念到实战,用 PyTorch 轻松上手
  • Qwt7.0-打造更美观高效的Qt开源绘图控件库
  • 小白成长之路-k8s部署项目(二)
  • SpringBoot整合Elasticsearch
  • 【DFS 或 BFS 或拓扑排序 - LeetCode】329. 矩阵中的最长递增路径
  • 60 C++ 现代C++编程艺术9-function用法
  • 机器学习】(12) --随机森林
  • QT-QSS样式表
  • 从零开始学习单片机14
  • 机器人中的李代数是什么
  • 基于波前编码成像系统模拟及图像复原的MATLAB实现
  • Rerank 与混合检索:协同提升检索精度
  • CUDA 工具包 13.0 正式发布:开启新一代 GPU 计算的基石!
  • 深入理解Linux进程程序替换:从原理到实践
  • 阿里云安装postgre数据库
  • 安全合规:AC(上网行为安全)--中
  • 2.认证与授权升级方案及使用
  • 力扣(有效括号)
  • 用蒙特卡洛法求解三门问题和Π
  • GPIO子系统自主实现(简单版)
  • 开发避坑指南(36):Java字符串Base64编码实战指南
  • 迭代器设计模式
  • 《XXL-Job 全面介绍:Java 开发中的分布式任务调度框架》
  • 【互动屏幕】为什么现在数字展厅偏爱地面互动装置?
  • 嵌入式Linux内核编译与配置
  • 神经网络与梯度算法:深度学习的底层逻辑与实战解析
  • 微论-神经网络中记忆的演变
  • “Datawhale AI夏令营--coze空间