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

标签 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.所以也不见了。

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

有什么想法吗?

谢谢

最佳答案

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

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

似乎默认包含了“gui”模块,所以:

QT          -= gui

解决了问题。

关于c++ - 使用 QtPlugin 部署 Qt 控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34856602/

相关文章:

c++ - 将非静态成员函数作为回调传递

c++ - 如何通过 Boost::MPI 发送 2d C 样式数组?

linux - 从可执行文件中剥离除指定调试信息之外的所有信息

c++ - Qt Custom Widget外观在设置样式表后没有改变

c++ - ifstream 将字符串的行转换为数组?

linux - 媒体 ubuntu 权限问题的 jenkins_home 路径

html - 现有 linux 用户登录网站

javascript - QML 中的第一个 XHR 请求非常慢(在 v8 上运行的 javascript)

linux - Qt5 的 CMAKE_PREFIX_PATH

c++ - fstream 未在 C++ 中创建文件