0

上下文 :

我目前正在使用 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 功能。它只是提供了获取版本/文件名/以及一些访问权限的方法。唯一包含的文件是“QtPlugin”。

有任何想法吗 ?

谢谢

4

1 回答 1

0

我想出了解决方案:我在 *.pro 文件中有:

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

并且似乎默认情况下包含“gui”模块,所以:

QT          -= gui

解决了这个问题。

于 2016-01-18T14:58:21.180 回答