Ошибка точки входа процедуры DLL сборки выпуска QT
Я построил приложение в 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-это та же версия. Я не программист, и в недоумении.
3 ответов
даже если версия библиотеки одинакова, они могут быть несовместимы. Например, они были скомпилированы с различными конфигурациями, такими как с поддержкой STL или без нее, OpenGL, драйверы SQL...
самый простой способ исправить это-переместить путь Qt SDK в начале PATH
переменные среды. Таким образом, всякий раз, когда вы запускаете исполняемый файл, который требует библиотек Qt, он загружает те, которые поставляются с SDK (первые из них найдены в PATH
), если уже нет копий Вместо qtcore4.dll, QtGui4.файл DLL... в каталоге исполняемого файла. По этой причине при распространении приложения также может потребоваться отправить библиотеки в его каталог.
другой вариант-статическая привязка, но вам потребуется предоставить исходный код под лицензией (L)GPL.
используйте 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 приложение падает на запуск, сбой в QtCore4.dll файлы