QT, включая.dll с использованием QTEditor

Я новичок в использовании QT, поэтому, полагаю, у этого есть простой ответ, но он ускользает от меня. Я переношу приложение в QT, и я пошел использовать QTEditor для этого. Мой компилятор MinGw и QT версии 4.7.4, а ОС - Windows 7.

Все происходит нормально при компиляции и компоновке. Во время работы я получаю код выхода 0xc0000135, что означает отсутствующую зависимость. Зависимость, о которой идет речь, представляет собой библиотеку C, которую я создал, а также скомпилирован с помощью mingw, поэтому проблема с двоичной совместимостью не существует. Кроме того, если я поместил.dll в тот же каталог, что и полученный исполняемый файл, приложение работает нормально.

Вот соответствующая часть файла.pro:

win32:LIBS += C:\Projects_SourceCode\MyLib\Bin\Release\MyLib.dll
win32:INCLUDEPATH += C:\Projects_SourceCode\MyLib\

Что мне не хватает? Это компилирует и связывает отлично, но позже исполняемый файл не находит "MyLib.dll". Я бы хотел, чтобы он не встал на путь. Не существует способа из QTEditor, чтобы исполняемый файл знал, где искать.dll?

Я использую IDE Codeblocks, и оттуда это очень легко сделать, поэтому я полагаю, что QTEditor также допускает такую опцию. Любая помощь будет оценена по достоинству.

+1
источник поделиться
1 ответ

Вы можете добавить его в переменную PATH только для рабочей среды (не всей системы) - вы можете манипулировать средой запуска на экране проектов. Очевидно, что это будет работать только для отладки, а не для производственного исполняемого файла. Для распространения вашего приложения рассмотрите возможность размещения dll в том же каталоге, что и основной исполняемый файл.

Где искать DLL (по крайней мере, на окнах), не написанное в исполняемом файле - система сначала просматривает исполняемый каталог, а затем просматривает каталоги PATH, поэтому вы не можете сделать это иначе. Где искать dll - это вопрос исполнения, а не компиляции, поэтому не ожидайте, что файл проекта qmake поможет вам в этом.

+1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос