Ошибка точки входа процедуры 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 файлы


статическое связывание библиотек устраняет проблему.