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

解决Qt“报无法定位程序输入点xxx于动态连接库“问题

    今天,在使用Qt+VS2019编译工程时,弹出"无法定位程序输入点xxx于动态链接库"问题,如图(1)所示:

图(1) 报"无法定位程序输入点xxx于动态链接库"问题

    出现这种问题的原因有很多:

  • (1) 工程Release/Debug,与lib的Release/Debug不一致;
  • (2)Qt的Path环境没有设置好,应该区分工程的32或64位,MSVC或MingW路径;
  • (3) 子类没有实现父类的虚函数,导致编译报错。

解决方法如下

1 将lib库版本与工程的版本保持一致

  • 若工程是Release版本的,则引用的lib要改成Release的;
  • 若工程师Debug版本的,则引用的lib要改成Debug的;
  • 即Release lib + Release vs.sln
  • Debug lib + Debug vs.sln

    比如工程本身是Debug版本,而第三方lib库是Release的,则需要将工程改成Release版本,如图(2)所示:
    在VS里,将菜单栏改成Release,右击工程 --》属性 --》也改成Release --》应用。

图(2)菜单栏和工程属性,要保持一致,要么都为Release,要么都为Debug

2 设置正确的Qt环境变量

    Qt环境变量,包括2种:(A)Qt插件+VS环境,(B)纯Qt环境;
    (A)、(B)这2种环境,不要同时配置到Path里。若同时配置到Path,编译器会无法识别,造成编译失败。

2.1 Qt插件+VS环境

若工程是Qt-addin插件+VS编译的,则选择MSVC环境变量;

64位 MSVC
path = D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin;D:\Qt\Qt5.14.2\Tools\QtCreator\bin;

    64位的msvc Qt环境,如图(3)所示:

图(3) Qt的64位MSVC路径

32位 msvc
path = D:\Qt\Qt5.14.2\5.14.2\msvc2017\bin;D:\Qt\Qt5.14.2\Tools\QtCreator\bin;

    32位的msvc Qt环境,如图(4)所示:

图(4) Qt的32位MSVC路径

2.2 纯Qt环境

    若工程是纯Qt编译,即采用Qt Creator编译,则选择MingW环境。

64位 mingw64
path = D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin;D:\Qt\Qt5.14.2\Tools\mingw730_64\bin;

    64位的MIingW64路径,如图(5)所示:

图(5) Qt的64位MingW路径

32位 mingw32
path = D:\Qt\Qt5.14.2\5.14.2\mingw73_32\bin;D:\Qt\Qt5.14.2\Tools\mingw730_32\bin;

    32位的MIingW32路径,如图(6)所示:

图(6) Qt的32位MingW路径

2.3 重启电脑

    配置Qt的Path环境变量之后,要重启电脑,环境才生效。
    按Alt+F4快捷键,选中"重启"下拉框即可重启。

3 实现父类的虚函数

    有些lib库继承了一个虚函数类,这个虚函数需要在子类里手动实现。可以在子类里加一个同名的函数覆盖它,先保证编译通过,再去调试相应的子模块。
    //父类: Father

class Father {
public:Father() {}~Father() {}virtual void Print() = 0;
};

    //子类:Child

class Child :Father {
public:Child() {}~Child() {}//重写父类的虚函数void Print() { std::cout << "hello\n"; };
};
http://www.lryc.cn/news/267136.html

相关文章:

  • wpf-MVVM绑定时可能出现的内存泄漏问题
  • 【飞凌 OK113i-C 全志T113-i开发板】一些有用的常用的命令测试
  • 基于iOS平台的车牌识别表情识别项目
  • Matlab仿真2ASK/OOK、2FSK、2PSK、QPSK、4QAM在加性高斯白噪声信道中的误码率与归一化信噪比的关系
  • 九:爬虫-MongoDB基础
  • 机器学习之实验过程01
  • 【【迭代16次的CORDIC算法-verilog实现】】
  • IntelliJ IDEA 2023.3 安装教程
  • Go 错误处理
  • HarmonyOS构建第一个ArkTS应用(Stage模型)
  • 故障排查利器-错误日志详解
  • 微信小程序(uniapp)api讲解
  • overtureDNS使用介绍
  • 平衡二叉树的构建(递归
  • flutter开发实战-设置bottomNavigationBar中间按钮悬浮效果
  • 不同参数规模大语言模型在不同微调方法下所需要的显存总结
  • Crow:Middlewares 庖丁解牛6 middleware_call_helper
  • MyBatis:Generator
  • rabbitmq的事务实现、消费者的事务实现
  • 龙芯杯个人赛串口——做一个 UART串口——RS-232
  • 验证码服务使用指南
  • js中Math.min(...arr)和Math.max(...arr)的注意点
  • 【zookeeper特点和集群架构】
  • MySQL集群架构搭建以及多数据源管理实战
  • C# WPF上位机开发(从demo编写到项目开发)
  • 微信小程序引入 vant组件(详细步骤)
  • Django之按钮(actions)
  • 从YOLOv1到YOLOv8的YOLO系列最新综述【2023年4月】
  • 浙江大唐乌沙山电厂选择ZStack Cloud打造新一代云基础设施
  • 电脑开机快捷启动,启动菜单没有u盘怎么办