我在Qt Creator中构建了一个应用程序,它使用CImg进行一些图像处理。当我从内部IDE运行它时它运行正常,但如果我尝试从它的目录启动它,它会抛出以下错误。
The procedure entry point ??4QString@@QAEAAV0@$$QAV0AAZ could not be located
in the dynamic link library QtCore4.dll
一切都指向安装了多个版本的DLL。我发现我的Xilinx IDE使用Qt库,但有问题的DLL版本相同。我不是一个真正的软件人,而且在这里不知所措。
答案 0 :(得分:16)
即使库版本相同,它们也可能不兼容。例如,它们使用不同的配置进行编译,例如是否支持STL,OpenGL,SQL驱动程序......
解决它的最简单方法应该是在PATH
环境变量的开头移动Qt SDK的路径。这样,无论何时运行需要Qt库的可执行文件,它都会加载SDK附带的(PATH
中的第一个),除非已经有QtCore4.dll,QtGui4.dll ......的副本。可执行文件的目录。因此,如果您重新分发应用程序,则可能还必须将库发布到其目录中。
另一个选项是静态链接,但您需要在(L)GPL许可下提供源代码。
答案 1 :(得分:0)
使用DependencyWalker列出加载qtcore4.dll的位置。 我遇到了同样的问题 - DependencyWalker向我展示了qtcore4.dll是从c:\ windows \ system32加载的 - 但是这个文件夹中没有qtcore4.dll。
注意:在Windows 7 64位c:\ windows \ SysWOW64被“映射”为c:\ windows \ system32。 在这个文件夹中,我找到了dll - 我重命名了dll,问题解决了。
在此处查看此答案: Qt fresh Gui application crashes on startup, faulting at QtCore4.dll
答案 2 :(得分:-1)
静态链接库消除了这个问题。
答案 3 :(得分:-1)
[Windows 10,Qt5 + Mingw]遇到相同的问题,即使在我复制了所有必要的Qt5 .dll文件后也遇到了相同的错误。
DependencyWalker为我崩溃了,所以我通过复制文件进行了反复试验。
原来,我还需要复制libstdc ++-6.dll。
这表明您可能需要复制Qt库之外的其他库。