C++ 使用QtPlugin部署Qt控制台应用程序

C++ 使用QtPlugin部署Qt控制台应用程序,c++,linux,qt5,qtplugin,C++,Linux,Qt5,Qtplugin,上下文: 我目前正在使用Qt开发一个多平台服务器端控制台应用程序。 我有一台开发计算机(pcdev)和一台服务器,我想在其中部署我的应用程序(pcserver)。 pc-dev配置了所有的开发工具(gcc、Qt5、cmake等),但是pc服务器没有这些工具。 两者都运行CentOs 7。 我的应用程序使用插件加载一些扩展其功能的文件 我的问题: 由于我的控制台应用程序不使用QtGui/QtWidgets模块,我不希望依赖它们(好的,你会说这很正常) 当我编译我的QtPlugin时,生成的*.so

上下文:

我目前正在使用Qt开发一个多平台服务器端控制台应用程序。 我有一台开发计算机(pcdev)和一台服务器,我想在其中部署我的应用程序(pcserver)。 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
解决了这个问题