2016-01-24 37 views
0

我正在尝试配置(并构建)QT5 static。我想让它画到framebuffer并使用webkit。我搜索了文档,但没有找到任何有关如何在没有X的情况下执行此操作的任何信息。有没有人知道这样做的方法?如何在不使用Xlib的情况下配置QT5

+0

你可以使用Wayland吗? –

+0

它应该只是简单的帧缓冲区 – Coretool

+0

为什么你不能使用X11和/或共享库?您需要商业许可才能销售静态链接的Qt应用程序;那么,Qt会给你一些支持 –

回答

3

静态构建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.

+0

所以:'./configure -platform linuxfb'足以使用(仅)帧缓冲? – Coretool

+1

它不是'configure'参数,它是您的应用程序的运行时参数。 – peppe

0

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

但是请注意,Linux上这些非主流选项可能不会完全支持诸如光标,叠加,旋转,vsync处理,GPU加速等功能。

+0

你在说什么这个最小的插件? – Coretool

+1

它是一个平台插件,用于将输出呈现为原始文件(用代表屏幕的像素填充)。请参阅http://stackoverflow.com/questions/21488072/what-is-the-use-of-various-qt-platform-plugins。请参阅http://gpupowered.org/node/20,了解ARM平台(Beagle)最小插件的(稍微过时的)构建步骤。请注意,此插件是在默认配置中构建的。你使用它作为./yourqt5_app -platform最小 – prabindh

相关问题