QT 部署不起作用缺少入口点

Posted

技术标签:

【中文标题】QT 部署不起作用缺少入口点【英文标题】:QT deployment doesn't work missing entry point 【发布时间】:2017-09-04 18:17:32 【问题描述】:

我正在开发我在 QT 中的第二个应用程序,我正在尝试部署一个粗略的副本进行测试。它不会在测试计算机上运行,​​在我的计算机上运行没有问题,给出错误“在 QT5core.dll 中找不到过程入口点 _ZdaPVJ”。因此,为了确保不是我的程序搞砸了,我创建了一个空白测试应用程序,编译它以进行发布,将 test.exe 移动到不同的位置,运行 windeployqt --release test.exe,它创建了所有依赖项和文件夹。单击 test.exe 运行没有问题。抓住最近创建的文件夹将其带到另一台计算机并出现同样的错误。 自从我编译我的第一个应用程序以来,有什么我忘记的吗?我是否在不知不觉中更改了某些设置? 沮丧...

【问题讨论】:

请提供***.com/help/mcve ??是一个空应用程序,就像您打开 QT Creator 并单击新应用程序并编译一样。什么都没加。不知道我还应该添加什么。 我得到了修改我的问题的建议,因为不清楚,我有被网站禁止的危险。英语不是我的第一语言,这些问题对我来说还可以。如果你能给我一些我需要修改的提示,我会很乐意这样做。我对 QT 有更多问题,但现在我不敢问了。 也许尝试改写问题以关注您在下面提到的“未加载驱动程序”问题。在这一点上,这似乎是你的“真正”问题。也许还要检查这个答案:QT example executables won't run, missing QT5Cored.dll。 【参考方案1】:

也许您可以检查您的问题是否与系统上存在的不同版本的dll有关,并且加载了错误的版本:

QT Release build DLL procedure entry point error https://forum.qt.io/topic/26707/the-procedure-entry-point-cound-not-be-located-in-the-dynamic-link-library

正如上面后一个链接中所建议的(朝向底部),您可以尝试使用dependency walker 来确定从何处加载 dll。或者对导致的许可问题使用静态链接(另请参见上面的后一个链接)。

最后附上一个关于使用 Qt 的 Window 的部署工具的链接:Qt deployment; the procedure entry point ... could not be located

【讨论】:

感谢您的回答。我做了以下操作,从我的其他应用程序中获取了 Qt5Core.dll 并且它起作用了。所以肯定我在dll之间有冲突。现在我的问题是,我确定是相关的,如果我从部署文件夹运行应用程序,我会在尝试连接到数据库时收到错误驱动程序未加载。我错过了一个驱动程序,或者错误的驱动程序,不知道如何解决。 我不是 Qt 专家,我只是想添加一些指针,但是试试 Qt Window's Deployment tool 怎么样?我的经验是这样的工具会引入太多的依赖项,但也许值得一试? 我运行了dependency walker,对这个工具不是很熟悉,我在API-MS-WIN-CORE-SYSINFO之类的东西上遇到了很多“错误打开文件,系统找不到指定的文件” -L1-2-0.DLL。我还收到了一个错误,在依赖项窗口的底部”说“找不到至少一个必需或转发的依赖项”和“找到具有不同 CPU 类型的模块”。 Stein,我确实使用了部署工具。我对它的使用非常有信心,我没有测试就给了这个软件, 上面提供的链接中有很多这样的“误报”。请务必阅读链接的内容,他们正是在谈论这些问题。首先要尝试的一件事可能是在系统范围内搜索 QT5core.dll 并查看您找到了多少个版本。

以上是关于QT 部署不起作用缺少入口点的主要内容,如果未能解决你的问题,请参考以下文章

点击时 UIPageController 点不起作用

在 VS 2008 中构建的 QT 应用程序在 XP 中不起作用

文本锚点不起作用。 (使用canvas.create_window)

JavaFX WebView:使用loadContent()链接到文档中的锚点不起作用

客户端绑定 Telerik RadListView 不起作用,缺少啥?

Qt 4.6.2 - QPropertyAnimation 不起作用