Qt实例化QLineSeries/QChart时报cmd.exe退出码-20错误怎么解决
编译阶段错误修复(对应feature-test macro、cmd.exe exited with code -20报错)
- 修正头文件引入逻辑:将
main.h中冗余的全量头文件包含替换为精确头文件,同时补充QtCharts命名空间声明,避免全局宏冲突:
// 替换原有#include <QtCharts>、#include <QChartView> #include <QtCharts/QChartView> #include <QtCharts/QLineSeries> #include <QtCharts/QChart> QT_CHARTS_USE_NAMESPACE
- 统一Windows SDK版本:检查报错机器VS项目属性→「常规」→「Windows SDK版本」,调整为和正常运行机器完全一致的版本,该报错为高版本Windows SDK与旧版Qt的编译器检测宏不兼容导致。
- 校验Qt版本配置:确认报错机器的Qt VS Tools选定的Qt版本(架构、版本号)与正常机器完全一致,QtCharts为Qt可选模块,版本不匹配会触发头文件内部错误。
ADTF插件加载错误修复(对应ERR_NOT_FOUND报错)
该错误为插件运行时缺失QtCharts动态依赖导致,仅编译期配置.lib文件无法解决运行时依赖问题:
- 补充运行时依赖:将当前Qt版本对应bin目录下的
Qt5Charts.dll(Debug版为Qt5Chartsd.dll)及其他用到的Qt组件dll(Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll等)拷贝到main.adtfplugin所在的输出目录,保证dll架构(32/64位)与ADTF运行环境一致。 - 修正CMake配置:在项目CMakeLists中显式添加QtCharts链接逻辑,避免手动修改VS配置被CMake生成覆盖:
find_package(Qt5 REQUIRED COMPONENTS Core Widgets Charts) target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Widgets Qt5::Charts)
- 依赖校验:可使用Dependencies工具打开生成的
main.adtfplugin文件,标记为红色的缺失依赖全部补入运行目录即可。
内容的提问来源于stack exchange,提问作者Jamie
相关产品推荐
相关产品推荐

