• 4079阅读
  • 4回复

交叉编译qt5.9 使能directfb出错 [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 楼主  发表于: 2018-01-16
提示错误信息如下:
looking for library directfb
Trying source 0 (type pkgConfig) of library directfb ...
pkg-config use disabled globally.
  => source produced no result.
test config.gui.libraries.directfb FAILED
其中有一句是:pkg-config use disabled globally.请问有什么解决方案吗
离线自强不吸

只看该作者 1楼 发表于: 2018-01-16
编译directfb(Directfb主要用于硬件性能较低的环境进行图形加速):
./configure -host=arm-none-linux-gnueabi -prefix=/usr/local/Directfb -with-gfxdrivers=none -enable-png -enable-jpeg -disable-tiff -enable-sdl=no -enable-gif -disable-x11 -enable-debug -sysconfdir=/etc -enable-fbdev;make;make install

三、编译Qt5.5.1
(1)、解压Qt5.5.1:
tar -zxvf qt-everywhere-opensource-src-5.5.1.tar.gz

(2)、添加directfb编译选项(在Qt配置文件中添加directfb支持始终不成功,没办法只能手动添加)
运行命令打开 platforms.pro :gedit qtbase/src/plugins/platforms/platforms.pro 在 配置linuxfb支持的后面加上directfb参数。
contains(QT_CONFIG, linuxfb): SUBDIRS += linuxfb directfb

(3)、添加directfb库和头文件路径(因为directfb的支持是手动添加,所以directfb库路径也要手动添加)
运行命令打开 directfb.pro :gedit qtbase/src/plugins/platforms/directfb/directfb.pro
#LIBS += $$QMAKE_LIBS_DIRECTFB
#QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_DIRECTFB
LIBS += -L/usr/local/Directfb/lib/ -ldirect -ldirectfb -lfusion
INCLUDEPATH += /usr/local/Directfb/include/directfb -D_REENTRANT

(4)由于运行Qt的时候如果界面上有文字会出现以下错误: QDirectFBTextureGlyphCache: Unsupported source texture image format.

运行命令打开 qdirectfbblitter.cpp : gedit qtbase/src/plugins/platforms/directfb/qdirectfbblitter.cpp
修改如下:
default:
  desc.pixelformat = DSPF_A8;
  //qFatal("QDirectFBTextureGlyphCache: Unsupported source texture image format.");
  break;

(5)、配置编译器支持
运行命令打开 qmake.conf : gedit qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
修改如下:
QT_QPA_DEFAULT_PLATFORM = directfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

QMAKE_INCDIR += /usr/local/tslib/include
QMAKE_LIBDIR += /usr/local/tslib/lib
QMAKE_LIBS += -lts

QMAKE_INCDIR += /usr/local/Directfb/include
QMAKE_LIBDIR += /usr/local/Directfb/lib
QMAKE_LIBS += -ldirect -ldirectfb -lfusion

# modifications to g++.conf
QMAKE_CC = arm-none-linux-gnueabi-gcc -lts -ldirect -ldirectfb -lfusion
QMAKE_CXX = arm-none-linux-gnueabi-g++ -lts -ldirect -ldirectfb -lfusion
QMAKE_LINK = arm-none-linux-gnueabi-g++ -lts -ldirect -ldirectfb -lfusion
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++ -lts -ldirect -ldirectfb -lfusion

# modifications to linux.conf
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_NM = arm-none-linux-gnueabi-nm -P
QMAKE_STRIP = arm-none-linux-gnueabi-strip
load(qt_config)

(6)、配置编译选项、编译安装
./configure -prefix /usr/local/Qt-5.5.1 -opensource -confirm-license -release -shared -xplatform linux-arm-gnueabi-g++ -no-pch -qt-libpng -qt-libjpeg -optimized-qmake -no-cups -no-qml-debug -no-xcb -no-nis -no-iconv -no-rpath -tslib -directfb -no-openssl -no-iconv -no-separate-debug-info -no-accessibility -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-sse2 -silent -nomake examples -no-compile-examples -nomake tests -qt-freetype -no-glib -no-opengl -skip webkit -v;make -j4;make install
自强不吸!
离线自强不吸

只看该作者 2楼 发表于: 2018-01-16
这是我之前编译5.5的
自强不吸!

只看该作者 3楼 发表于: 2018-01-19
回 自强不吸 的帖子
自强不吸:编译directfb(Directfb主要用于硬件性能较低的环境进行图形加速):
./configure -host=arm-none-linux-gnueabi -prefix=/usr/local/Directfb -with-gfxdrivers=none -enable-png -enable-jpeg -disable-tiff -enable-sdl=no -enable-gif -disable-x11 -enable-debug -sysconfdir= .. (2018-01-16 16:35) 

参考这个编译,在加上两句环境变量确实是编译成功了,export PKG_CONFIG_LIBDIR=/usr/local/Directfb/lib/pkgconfig/
export PKG_CONFIG_SYSROOT_DIR=/home/zyyt/crosstools/arm-2014.05/,请问directfb,怎么测试,我运行directfb下dfbinfo时出错了,报告了段错误

只看该作者 4楼 发表于: 2018-01-19
回 自强不吸 的帖子
自强不吸:编译directfb(Directfb主要用于硬件性能较低的环境进行图形加速):
./configure -host=arm-none-linux-gnueabi -prefix=/usr/local/Directfb -with-gfxdrivers=none -enable-png -enable-jpeg -disable-tiff -enable-sdl=no -enable-gif -disable-x11 -enable-debug -sysconfdir= .. (2018-01-16 16:35) 

谢谢哈,有没有测试directfb方法,我这边qt显示利用directfb出错了
快速回复
限100 字节
 
上一个 下一个