-无法找到入口 无法定位程序输入点 aboutToDestroy@QWidgetPrivate@@UEAAXXZ于动态链接库 Qt5PrintSupport.dll 上。

-无法找到入口 无法定位程序输入点 ?aboutToDestroy@QWidgetPrivate@@UEAAXXZ于动态链接库 Qt5PrintSupport.dll 上。

【这是错误的】原因分析:

1、我的Qt版本是2013 VS编译得到的;

2、qcustomplot.cpp是在VS2010编译的;

3、将两者link到一起的时候,就会出现这种错误!

这个错误通常是由于 DLL 文件版本不匹配或不兼容引起的。以下是一些可能的解决方案:

确保 DLL 版本匹配:确保 Qt5PrintSupport.dll 和其他 Qt DLL 文件与编译时使用的 Qt 版本完全匹配。不同版本的 Qt DLL 可能会导致这种入口点错误。

检查 Qt 安装路径:确保你的应用程序使用的 DLL 文件来自同一个 Qt 安装路径。混合使用来自不同 Qt 安装的 DLL 文件可能会导致不兼容。

使用 windeployqt 工具:使用 windeployqt 工具来自动复制所有需要的 Qt DLL 文件到你的可执行文件目录。这个工具会确保复制的 DLL 文件与编译时使用的 Qt 版本一致。

在命令行中运行:


2024年10月11日10:31:46

经过重复性的验证,发现上述的原因分析是错误的。真正的原因是:

  • qcustomplot.cpp是在VS2010的编译选项 与 官方提供的Qt安装包的编译选项不一样 ;

  • 当同步了两者的编译选项后,软件皆可正常启动。

  • 为了验证这件事情,笔者重新利用VS2010编译了整套的QT5.4.2的源码,当编译成功后,和qcustomplot.cpp混合编译,依旧出现aboutToDestroy@QWidgetPrivate@@UEAAXXZ于动态 错误。

  • 当笔者将qcustomplot.cpp的编译选项和QT5.4.2的编译选项保持一致(在CMakeLists.txt)后,问题得到了解决

    正确的编译选项应该这样写:
    ## 设置编译选项
    target_compile_options(${PROJECT_NAME} PRIVATE
            $<$<CONFIG:Release>:-DWIN64 -DULIB>
    )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值