Развертывание консольного приложения Qt с помощью QtPlugin

Контекст:

В настоящее время я работаю над многоплатформенным серверным консольным приложением, использующим 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".

Есть идеи?

Спасибо

1 ответ

Решение

Я разобрался с решением: у меня было в *.pro файле:

QT          += core
TARGET      = MyPlugin
TEMPLATE    = lib
CONFIG      += plugin

и кажется, что модуль "GUI" включен по умолчанию, так что:

QT          -= gui

исправил проблему.

Другие вопросы по тегам