Контекст :
В настоящее время я работаю над многоплатформенным серверным консольным приложением, использующим Qt.
У меня есть компьютер для разработки (pc-dev) и сервер, на котором я хочу развернуть свое приложение (pc-server).
pc-dev сконфигурирован со всеми средствами разработки (gcc, Qt5, cmake и т. д.), но у pc-сервера нет всех этих инструментов.
Оба запускают CentOs 7.
Мое приложение использует плагины для загрузки некоторых файлов, которые расширяют его функциональность.
Моя проблема :
Поскольку мое консольное приложение не использует модули QtGui / QtWidgets, мне не нужны зависимости от них (хорошо, это нормально, вы бы сказали)
Когда я компилирую свой QtPlugin, сгенерированный файл * .so зависит от Qt5Gui.so (подтверждается ldd myfile.so
), и поэтому при развертывании приложения загрузка завершается неудачно, поскольку отсутствует Qt5Gui.so.
Я не понимаю, почему у меня есть такая зависимость, потому что мой плагин не использует функциональность GUI.
Он просто предоставляет методы для получения версии / имени файла / и некоторого доступа к нему.
Единственный включенный файл — это «QtPlugin».
Есть идеи ?
Спасибо
Я разобрался с решением:
Я имел в файле * .pro:
QT += core
TARGET = MyPlugin
TEMPLATE = lib
CONFIG += plugin
и кажется, что модуль «GUI» включен по умолчанию, так что:
QT -= gui
исправил проблему.
Других решений пока нет …