使用QtPlugin

时间:2016-01-18 14:02:55

标签: c++ linux qt5 qtplugin

上下文:

我目前正在使用Qt开发多平台服务器端控制台应用程序。 我有一台开发计算机(pc-dev)和一台服务器,我想部署我的应用程序(pc-server)。 pc-dev配置了所有开发的东西(gcc,Qt5,cmake等...)但是pc-server没有所有这些工具。 两者都运行CentOs 7。 我的应用程序使用插件来加载一些扩展其功能的文件。

我的问题:

由于我的控制台应用程序不使用QtGui / QtWidgets模块,我不希望它们依赖(好的,你会这么说) 当我编译QtPlugin时,生成的* .so文件依赖于Qt5Gui.so(由ldd myfile.so确认),因此当我部署我的应用程序时,加载失败,因为缺少Qt5Gui.so。

我不明白为什么我有这种依赖,因为我的插件不使用gui functionnality。 它只提供了获取版本/文件名/以及对它的一些访问权限的方法。 唯一包含的文件是“QtPlugin”。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

我找到了解决方案: 我在* .pro文件中:

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

似乎" gui"默认情况下包含模块,所以:

QT          -= gui

修复了问题。