解决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"; };
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/270379.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RK3588平台开发系列讲解(AI 篇)RKNN rknn_query函数详细说明

文章目录 一、查询 SDK 版本二、查询输入输出 tensor 个数三、查询输入 tensor 属性(用于通用 API 接口)四、查询输出 tensor 属性(用于通用 API 接口)五、查询模型推理的逐层耗时六、查询模型推理的总耗时七、查询模型的内存占用情况八、查询模型里用户自定义字符串九、查询原…

双端队列、优先级队列、阻塞队列

双端队列、优先级队列、阻塞队列 文章目录 双端队列、优先级队列、阻塞队列1 双端队列1.1 概述1.2 应用实例1.2.1 双端链表实现1.2.2 数组实现1.2.3 测试代码 1.3 课后作业- LeeTCode103 2. 优先级队列2.1 概述2.2 基于无序数组实现2.3 基于有序数组实现2.3 堆实现优先级队列2.…

阻抗控制中的弹簧与阻尼影响分析

阻抗控制是一种机器人控制方法&#xff0c;通过调整机器人的阻抗来实现对机器人的精准控制。在阻抗控制中&#xff0c;弹簧和阻尼是两个重要的参数&#xff0c;它们对机器人的性能和稳定性有很大的影响。 弹簧代表机器人的刚度和弹性&#xff0c;而阻尼代表机器人的阻尼特性&a…

63权限提升-Linux脏牛内核漏洞SUID信息收集

今天讲到的方法是suid和内核漏洞 案例一Linux 提权自动化脚本利用-4 个脚本 两个信息收集&#xff1a;LinEnum、linuxprivchecker 两个漏洞探针&#xff1a;linux-exploit-suggester、linux-exploit-suggester2 信息收集有什么用&#xff1f; 信息收集就能判断能否进行s…

无人叉车驻车定位RFID传感器CNS-RFID-01|1S的CAN总线通信连接方法

无人叉车驻车定位RFID传感器CNS-RFID-01|1S支持CAN总线通信方式&#xff0c;广泛应用于智能仓库&#xff0c;AGV |RGV小车&#xff0c;无人叉车&#xff0c;搬运机器人定位&#xff0c;驻车等领域&#xff0c;本篇幅主要介绍器CNS-RFID-01|1S RFID传感器的CAN总线通信连接方法。…

re模块(正则)

【 一 】 re模块概述 在线测试工具 正则表达式在线测试 - 站长工具 随着正则表达式越来越普遍&#xff0c;Python 内置库 re 模块也支持对正则表达式使用 Python 提供了re模块可以支持正则表示表达式使用&#xff0c;re模块提供了9个常量、12个函数 使用方法&#xff1a; re…

leetcode 38. 外观数列(medium)(优质解法)

链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 代码&#xff1a; class Solution {public String countAndSay(int n) {//要进行 n - 1 次描述才能得到结果// last 代表当前要描述的字符串String last"1";// ret 代表描述…

【Git】fatal: bad boolean config value ‘true~‘ for ‘core.longpaths‘

windwos操作系统git config设置错了参数值&#xff0c;解决方法。 出现原因 在拉取代码时&#xff0c;仓库中存在文件名过长得文件&#xff0c;拉取报错了“filename too long” 解决 git config --system core.longpaths true结果在复制命令时&#xff0c;粘贴到命令行多了一…

git 使用方法自用(勿进)本地开发分支推上线上开发分支

一、//查看状态 1.git status 二、//查看改了哪个文件夹 1.git diff 2.//会出现改了哪个文件夹src/components/partials/Slider.js 三、//查看改了的文件夹里面具体改了啥内容 1.git diff src/components/partials/Slider.js 四、提交所有 1. git add . 五、写备注…

【C++】零碎知识点

类对象不能直接访问类的私有成员&#xff0c;不能在类外访问类的私有成员。只有基类的成员函数能访问私有成员&#xff0c;不能被派生类的成员函数访问。 如果在类声明时没有给出成员访问限定符&#xff0c;则默认的成员访问属性是私有的。 常成员函数的定义&#xff1a;int …

Redis数据库——键过期时间

一.设置键的生存时间或者过期时间 我们可以在Redis客户端输入命令&#xff0c;可以以秒或者毫秒精度为数据库中的某个键设置生存时间&#xff0c;在指定秒数或者毫秒数之后&#xff0c;服务器会自动删除生存时间为0的键。 1.1 设置过期时间 Redis有四个不同的命令可以用于设置键…

浅学JWT跨域认证

Json Web令牌简称JWT 由HeaderPayloadSignature组成 Header JWT头是一个描述JWT元数据的JSON对象&#xff0c;alg属性表示签名使用的算法&#xff0c;默认为HMAC SHA256&#xff08;写为HS256&#xff09;&#xff1b;typ属性表示令牌的类型&#xff0c;JWT令牌统一写为JWT。…

AI技术迅猛发展,视频智能化给人类带来了哪些便利?

随着AI技术的迅猛发展&#xff0c;视频智能化也逐渐普及。在我们常见的生产工作和日常生活中&#xff0c;视频智能化都为人类带来了许多便利。今天小编就和大家探讨一下智能化监控带来了哪些便利。 1、安全监控 视频智能化可以实现智能安防监控&#xff0c;例如智慧安防系统Ea…

【并发设计模式】聊聊 基于Copy-on-Write模式下的CopyOnWriteArrayList

在并发编程领域&#xff0c;其实除了使用上一篇中的属性不可变。还有一种方式那就是针对读多写少的场景下。我们可以读不加锁&#xff0c;只针对于写操作进行加锁。本质上就是读写复制。读的直接读取&#xff0c;写的使用写一份数据的拷贝数据&#xff0c;然后进行写入。在将新…

Linux怎么解压zip格式文件?

Linux解压命令zip是一种常见的文件压缩格式&#xff0c;用于把文件打包成一个zip文件&#xff0c;当我们需要共享或是发送时&#xff0c;能够更快速的发送&#xff0c;储存起来能够减少储存空间。那我们在Linux上怎么使用解压命令zip来解压zip格式文件呢&#xff1f;我们一起来…

Web前端VScode/Vue3/git/nvm/node开发环境安装

目录 1 基本配置 2 安装vscode 3 安装vue 4 配置bash 5 安装nvm 6 安装node 7 安装yarn 8 新建项目 9 运行helloworld 1 基本配置 本篇是为了做前端开发的环境而写。使用的操作系统是windows 10 64位 2 安装vscode 现在做vue和node基本就是vscode和webstorm&#x…

入门级:用devEco Studio创建一个鸿蒙APP

文章概叙 本文主要讲的是如何在鸿蒙的开发工具devEco Studio新建一个项目&#xff0c;全文很水&#xff0c;只适合新手!! 开始贴图 假设当前你已经下载好了devEco Studio,但是还没正式开始安装&#xff0c;此时你点击安装包&#xff0c;你会发下如下页面&#xff0c;只需要点…

043、循环神经网络

之——RNN基础 杂谈 第一个对于序列模型的网络&#xff0c;RNN。 正文 1.潜变量自回归模型 潜变量总结过去的信息&#xff0c;再和当前信息一起结合出新的信息。 2.RNN 循环神经网络将观察作为x&#xff0c;与前层隐变量结合得到输出 其中Whh蕴含了整个模型的时序信息&#xf…

10-让Java性能提升的JIT深度剖析

文章目录 JVM的语言无关性解释执行与JITC1、C2与Graal编译器C1编译器C2编译器 分层编译(了解即可)热点代码热点探测方法调用计数器回边计数器 编译优化技术方法内联锁消除标量替换逃逸分析技术逃逸分析的原理逃逸分析 JVM的语言无关性 跨语言&#xff08;语言无关性&#xff0…

【各种**问题系列】Java 数组集合之间的相互转换

&#x1f4cc; 问题点&#xff1a; 在 Coding 过程中经常会遇到数组、List、Set、Map 之间的相互转换......这里记录一下转换的几种方式。&#x1f636;&#x1f636;&#x1f636; 目录 &#x1f4cc; 集合转换 1.数组 转 List&#xff1a; 2.List 转 数组&#xff1a; 3…