2015-04-28 4 views
0

Когда я выпускаю свой проект Qt, я хочу перераспределять файлы QtCore5.dll и Qtxxx.dll.Qt Release qt.conf

Как я могу сделать myapp.exe, чтобы найти их автоматически? Лучший способ сделать это, по-видимому, путем редактирования файла qt.conf, помещенного в ту же папку, что и мой исполняемый файл.

myapp.exe в C: \ MyApp \ папку бин

Библиотеки DLL в с: MyApp \ общая папка

+0

my app.exe находится в папке c: \ myapp \ bin. – Pogel

+0

DLL находятся в каталоге c: myapp \ common – Pogel

+0

Вы можете отредактировать свой вопрос, чтобы быть более читабельным и ответственным. Вы не должны комментировать свой вопрос – goto

ответ

0

Просто поместите все необходимые DLL-файлы в том же каталоге, что и исполняемый файл.

Обратите внимание, что для распространения больше файлов, чем просто Qt * .dll - вам понадобится надлежащий плагин из подкаталога platforms и многих других. Прочтите Qt-документацию по развертыванию приложения под Windows - он научит вас всем необходимым файлам.

+0

все необходимые DLL находятся в каталоге C: \ myapp \ common, а мое приложение находится в C: \ myapp \ bin. – Pogel

+0

Я положил qt.conf [Пути] Префикс = $ (myapp_HOME) \ common Плагины = $ (myapp_HOME) \ common – Pogel

+0

в том же каталоге, что и мой исполняемый файл без успеха – Pogel

0

«Лучше» способ разместить ваши qt.conf в свои ресурсы :/qt/etc/qt.conf. Этот способ имеет наивысший приоритет для разрешения зависимостей платформы.

В нашем проекте мы используем cmake для создания нужного файла qt.conf: в режиме отладки мы помещаем путь к установленным двоичным файлам Qt и в папке release - в локальную (разворачивающуюся) папку.

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

+0

Я решил проблему, вот решение: – Pogel

+0

В основной программе я добавляю QCoreApplication :: addLibraryPath (QString :: fromLocal8Bit (ToolPathEnv) + "\\ common"); QCoreApplication :: addLibraryPath (QString :: fromLocal8Bit (ToolPathEnv) + "\\ common \\ plugins"); и я установил его в переменной среды PATH. Qt.conf помещается в ту же директорию, что и myexecutable.myapp.exe, и их содержимое: [Пути] Префикс = $ (MyApp_HOME) \ common Плагины = плагины – Pogel

+0

@Pogel, ваше решение не будет работать, если ваше приложение будет сохранено в папке со сложным именем юникода. –

Смежные вопросы