适配DirectFB到qt4.8.5
1、编译qt4.8.5
这部在qt官网上其实已经有较详细的说明,了解更多,请点击链接进入。
首先是配置选项,如下是我的配置选项:
- ./configure
- -prefix /home/share/nuc972/nuc-bsp/applications/qt4
- -release
- -opensource
- -qconfig dist
- -no-exceptions
- -no-accessibility
- -no-stl
- -no-qt3support
- -no-xmlpatterns
- -no-multimedia
- -no-audio-backend
- -no-phonon
- -no-phonon-backend
- -no-svg
- -no-webkit
- -no-javascript-jit
- -no-script
- -no-scripttools
- -no-declarative
- -no-declarative-debug
- -qt-zlib
- -qt-freetype
- -no-gif
- -qt-libpng
- -no-libmng
- -no-libtiff
- -qt-libjpeg
- -no-openssl
- -nomake tools
- -nomake demos
- -make examples
- -nomake docs
- -nomake translations
- -no-nis
- -no-cups
- -no-iconv
- -no-pch
- -no-dbus
- -embedded arm
- -xplatform qws/linux-arm-gnueabi-g++
- -no-gtkstyle
- -no-nas-sound
- -no-opengl
- -no-openvg
- -no-sm
- -no-xshape
- -no-xvideo
- -no-xsync
- -no-xinerama
- -no-xcursor
- -no-xfixes
- -no-xrandr
- -no-xrender
- -no-mitshm
- -no-fontconfig
- -no-xinput
- -no-xkb
- -no-glib
- -qt-gfx-directfb
- -qt-mouse-tslib
以上配置可根据自己实际情况进行修改,配置选项的具体含义可以运行./configure --help 进行了解
其中-qt-gfx-directfb配置选项即是打开qt对directfb的支持
还有个要关注的地方是xplatform选项,我们的编译器配置是在里面的。如我使用的是linux-arm-gnueabi-g++,这些信息被写在qt-everywhere-opensource-src-4.8.5/mkspecs/qws/linux-arm-gnueabi-g++目录下的qmake.conf文件中。
这里我们使用了directfb的同时还使用了tslib为了让编译顺利我们还需要告知它dfb和tslib库的路径,它们也可以写在qmake.conf文件中
如下我们在qmake.conf文件中告诉它我们库的路径,其中dfb的配置需要通过QTCFLAGSDIRECTFB和QTLIBSDIRECTFB来配置。
- QT_CFLAGS_DIRECTFB = -I/home/share/.../prefix_DFB/include/directfb -D_REENTRANT
- QT_LIBS_DIRECTFB = -L/home/share/.../prefix_DFB/lib -ldirect -ldirectfb -lfusion -lts
- QMAKE_INCDIR = /home/share/.../prefix_tslib/include
- QMAKE_LIBDIR = /home/share/.../prefix_tslib/lib
路径方面请安自己的实际情况设置。
做好上述工作后运行我们的配置项,配置完成后运行make即可愉快的编译了,编译完成后make install 到我们指定的目录然后拷贝到板子上即可运行了。
2、qt4.8.5运行时配置
如下配置设置到系统环境变量中去,主要告知我们的qt库的路径。
- export QTDIR=/lib/qt4
- export QT_DEBUG_PLUGINS=1
- export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/platforms
- export QT_QPA_FONTDIR=$QTDIR/lib/fonts
- export QT_QWS_FONTDIR=$QTDIR/lib/fonts
- export QT_PLUGIN_PATH=$QTDIR/plugin
- export QML2_IMPORT_PATH=$QTDIR/qml
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
- export QWS_DISPLAY="LinuxFb:mmWidth240:mmHeight180:1"
- export QWS_MOUSE_PROTO="TSLIB:/dev/input/event0"
配置完qt库的路径我们还需要配置dfb的库路径,我这边的如下配置
- export LD_LIBRARY_PATH=/lib/dfb/lib:$LD_LIBRARY_PATH
- export DFBARGS=module-dir=/lib/dfb/directfb-1.4-5
其中DFBARGS=module-dir是要告诉dfb我们插件的位置,路径方面按照自己实际情况设置。
然后运行个dfb的示例看看dfb是否能正常跑如dfb的bin目录下的dfbinfo,确定dfb正常后再运行个qt的示例看看qt是否正常如到qt的examples路径执行./trivialwizard -qws
确定dfb和qt单独运行多没问题后再执行./trivialwizard -qws -display directfb 后此时qt即用的dfb来做显示绘图,如果有适配dfb的gfx驱动可以在gfx驱动中加入打印看是否有调用到硬件加速。
http://blog.csdn.net/jxgz_leo/article/details/77604569