如何在没有 Xlib 的情况下配置 QT5

Posted

技术标签:

【中文标题】如何在没有 Xlib 的情况下配置 QT5【英文标题】:How do I configure QT5 without Xlib 【发布时间】:2016-01-24 16:58:51 【问题描述】:

我正在尝试配置(和构建)QT5 静态。我希望它绘制到帧缓冲区并使用 webkit。我搜索了文档,但没有找到任何关于我如何在没有 X 的情况下做到这一点的信息。有人知道这样做的方法吗?

【问题讨论】:

你会用 Wayland 吗? 它应该只是普通的帧缓冲区 为什么不能使用 X11 和/或共享库?您需要商业许可证才能销售静态链接的 Qt 应用程序;那么,Qt会给你一些支持 我不会卖任何东西 ^^ 我的目标上没有 X-server... 【参考方案1】:

静态构建 Qt 与平台选择完全正交。根据您的目标设备,您可以选择使用 Wayland、EGLFS、LinuxFB/DirectFB 等。

请确保当您运行 configure 时,您感兴趣的实际插件会被编译。换句话说,检查configure 的最终输出(或读取生成的config.summary 文件)。如果平台不存在,请运行 configure -v 并尝试查看缺少的内容(头文件、库等)。

然后,您可以通过简单地启动应用程序并传递参数 -platform eglfs|wayland|...(或通过设置 QT_QPA_PLATFORM 环境变量;或者您可以通过修改 将其设为默认值来使任何应用程序使用给定插件设备 mkspecs)。 More info here.

当涉及到静态链接时:这种多平台支持是通过插件实现的。静态链接的应用程序没有可用的插件加载,因此您必须通过添加类似的内容将平台插件实际链接到应用程序本身

QTPLUGIN.platforms = eglfs

进入您的.pro 文件。 More info here.

【讨论】:

那么:./configure -platform linuxfb 是否足以(仅)使用帧缓冲区? 这不是configure 参数,它是您的应用程序的运行时参数。【参考方案2】:

最好的方法是使用“minimal”插件并将其放入帧缓冲区(类似于http://lists.qt-project.org/pipermail/development/2015-April/021160.html 的讨论)。但是,请询问您的平台供应商 - 检查“eglfs with fb”是否是受支持的选项。

但请注意,Linux 上的这些非主流选项可能不完全支持光标、叠加层、旋转、垂直同步处理、GPU 加速等功能。

【讨论】:

你说的这个最小插件是什么? 它是一个平台插件,用于将输出渲染为原始文件(填充代表屏幕的像素)。请参阅***.com/questions/21488072/…。请参阅gpupowered.org/node/20 了解(略微过时的)ARM 平台 (Beagle) 最小插件的构建步骤。请注意,此插件内置于默认配置本身。您将其用作 ./yourqt5_app -platform minimum

以上是关于如何在没有 Xlib 的情况下配置 QT5的主要内容,如果未能解决你的问题,请参考以下文章

如何在商店中没有应用的情况下配置 App Clip

iOS 如何在没有设备的情况下创建开发配置?

在没有光驱的情况下如何配置本地yum源?

如何在没有 persistence.xml 的情况下配置 Spring?

如何在 Qt5 上编译 QtWebKit?

如何使用 QT 5.2 在 android 上删除发布输出中的调试模式