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

Deploying Qt console application with QtPlugin

本文关键字:控制台 应用程序 Qt 部署 QtPlugin 使用      更新时间:2023-10-16

上下文:

我目前正在使用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

修复了问题。