Ссылка Qt DLL на несколько исполняемых файлов

1

У меня есть четыре разных.exe в разных поддиректорах одного конкретного каталога. Все программы нуждаются в таких же. DLL (Qt5Core, Qt5Gui и Qt5Widgets). Есть ли способ иметь эти три DLL файла только в корневом каталоге, которым необходимо скопировать их в каждый подкаталог?

Теги:
dll
qt
exe

2 ответа

1
Лучший ответ

Здесь вы найдете порядок поиска DLL-путей в Windows:

Поскольку режим безопасного поиска в DLL включен по умолчанию, порядок

  1. Каталог, из которого загружено приложение.
  2. Системный каталог. Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу.
  3. 16-разрядный системный каталог. Нет функции, которая получает путь к этому каталогу, но выполняется поиск.
  4. Каталог Windows. Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу.
  5. Текущий каталог.
  6. Каталоги, перечисленные в переменной среды PATH. Обратите внимание, что это не включает путь для каждого приложения, указанный в разделе реестра приложений. Ключ App Paths не используется при вычислении пути поиска DLL.

Таким образом, проще всего обеспечить, чтобы вы запускали приложение из рабочего каталога, в который вы помещали библиотеки DLL (5.). Это можно сделать, написав стартовый.bat файл, который сначала перемещается туда, а затем запускает приложение относительно директории DLL.

Другим способом было бы добавить каталог DLL в PATH в стартовом файле.bat(6.).

В обоих случаях вам нужен сценарий оболочки для каждого.exe, который вы хотите запустить.

Вы могли бы избежать этого, если вы можете убедиться, что ссылки на приложение правильно установили рабочий каталог. Это будет работать, если у вас есть установщик, создающий ярлыки для пользователя, и вы знаете, что пользователь сам не создаст его, просто щелкнув правой кнопкой мыши на.exe.


Также может быть использование hardlinks или junctions, но я не знаю, можете ли вы копировать и разворачивать те, которые похожи на символические ссылки в Linux, или если вам нужно создать их в целевой системе.

0

Да, вы используете Windows, и вы можете добавить свой корневой каталог в качестве пути в среде Varibles из

Computer-> Properties-> Расширенные настройки системы → Переменные среды

Изображение 174551

Ещё вопросы

Сообщество Overcoder
Наверх
Меню