У меня есть проект C++ с использованием Qt, и я работаю так, как ожидалось. Однако проблема заключается в том, когда я копирую исполняемый файл в стандартную установку ОС (например, Windows или Linux) после выполнения. Я получаю ошибки QtWidgets или некоторые другие библиотеки Qt.
Я пробовал ссылаться на Qt Documentation, но я не могу найти решение или пример того, что мне нужно. Это имеет какое-то отношение к Static и Dynamic Building... но не может найти хороший пример или учебник.
Я просмотрел учебник http://www.qtcentre.org/wiki/index.php?title=Deploying_Qt_Applications, но это не совсем эффективное решение.
В основном я хочу, чтобы система включала необходимые библиотеки Qt вместе с окончательным скомпилированным файлом. Как я могу снять его?
Вы можете сделать сценарий, который копирует ваши DLL (или.so * файлы) в исполняемую папку. После того, как вы добавите дополнительную команду Makefile в файл проекта:
theproject.pro:
OTHER_FILES += copy.script # Assuming your copy script is called "copy.script"
deploylibs.target = deploylibs
deploylibs.command = ./copy.script # Launching the script
QMAKE_EXTRA_TARGETS += deploylibs
Теперь вы можете развернуть свои библиотеки, используя команду (n
) make deploylibs
.
NB: есть очень полезный инструмент под названием " Dependency Walker ", чтобы найти нужные DLL. Это только для Windows. Что касается Linux и его *.so*
файлов, вы можете использовать команду ldd
:
>$: ldd theexecutable
alib.so => /path/to/library/on/your/computer.so
...