为了搭建这个环境,我把我的虚拟机都重装了,最后终于成功!!!!!!
人都不不好了。。好了 话不多说,切入正题。。
注意:搭建环境之前,先要安装tslib库,安装方法详见我的博客:http://blog.csdn.net/huangan_xixi/article/details/49448929
否则会出现错误。。。
我用的QT库的版本是:qt-everywhere-opensource-src-4.6.4.tar.gz
第一步、
新建安装文件夹:/home/huangan/fl2440/3rdparty/qt_install
将qt-everywhere-opensource-src-4.6.4.tar.gz在/home/huangan/fl2440/3rdparty目录下解压(这个随意在哪个目录)
解压后进入源文件,制作脚本文件
内容为:
#!/bin/sh ./configure -prefix /home/huangan/fl2440/3rdparty/qt_install \ -release \ -shared \ -fast \ -no-largefile \ -qt-sql-sqlite \ -no-qt3support \ -no-xmlpatterns \ -no-mmx \ -no-3dnow \ -no-sse \ -no-sse2 \ -no-svg \ -no-webkit \ -qt-zlib \ -qt-gif \ -qt-libtiff \ -qt-libpng \ -qt-libmng \ -qt-libjpeg \ -qt-gfx-transformed \ -qt-gfx-linuxfb \ -make libs \ -xplatform qws/linux-arm-g++ \ -nomake tools \ -nomake examples \ -nomake docs \ -nomake demo \ -no-nis \ -no-cups \ -no-iconv \ -no-dbus \ -no-openssl \ -embedded arm \ -little-endian \ -qt-freetype \ -depths 16,18 \ -no-glib \ -qt-mouse-tslib \ -no-javascript-jit \ -no-script \ -no-scripttools \
制作好脚本文件后,用source命令使能一下;
第二步、
修改源码:vim /home/huangan/fl2440/3rdparty/qt-everywhere-opensource-src-4.6.4/mkspecs/qws/linux-arm-g++/qmake.conf
include(../../common/g++.conf) include(../../common/linux.conf) include(../../common/qws.conf) QMAKE_INCDIR = /home/lzj/fl2440/3rdparty/ts_install/include QMAKE_LIBDIR = /home/lzj/fl2440/3rdparty/ts_install/lib # modifications to g++.conf QMAKE_CC = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc -lts QMAKE_CXX = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-g++ -lts QMAKE_LINK = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-g++ -lts QMAKE_LINK_SHLIB = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-g++ -lts # modifications to linux.conf QMAKE_AR = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ar cqs QMAKE_OBJCOPY = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-objcopy QMAKE_STRIP = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-strip load(qt_config)
上面主要是放你tslib库的路径和你交叉编译器的路径,全用绝对路径!
vim /home/haungan/fl2440/3rdparty/qt-everywhere-opensource-src-4.6.4/src/gui/itemviews/qabstractitemview.cpp
将'Key_BackSpace' 更改为将'Key_Backspace'
改完之后执行先前制作的脚本文件./qtconfigure
执行之后会有个选项,就选 ‘o’
执行完之后make && make install
执行完之后,先将你安装目录下bin文件里的qmake 放到虚拟机的/usr/local/bin目录下,并修改虚拟机的环境变量
vim .bash_profile 在末尾加入
export QT=/home/huangan/fl2440/3rdparty/qt_install
export QTLIB=$QT/lib
export QTBIN=$QT/bin
这样,你的Linux就可以编译从Windows下传来的qt程序啦
qmake -project
qmake
make
OK ,假如说你的开发板上的环境也搭建好了,就可以直接把二进制文件下载到开发板上运行啦!!!!!!!!!!
运行格式:./filename -qws(PS:不要漏了这个参数,不然会出错的)
如果想打印中文的话: ./a.out -qws -fn unifont
开发板上搭建qt程序运行环境(前提是要把tslib库移植到开发板,移植方法在博客开头已给出地址)
很简单,将上面安装好的qt的lib库下载到开发板,lib目录下会有一个fonts,添加开发板上系统的环境变量 vim /etc/porfile
添加
export QWS_MOUSE_PROTO=TSLIB:/dev/event0
export QTLIB=/mnt/qtlib
export QT_QWS_FONTDIR=/mnt/qtlib/fonts
添加完成后,记得用source 命令使能profile文件
如果说运行程序的时候出现/qttest: can't load library 'libQtGui.so.4' 这个错误,
就是程序没有找到你QT的库,解决办法:把QT库手动拷到系统的lib文件下,或者在系统的环
境变量中添加库的路径:export LD_LIBRARY_PATH=/lib:/usr/lib:/apps/qt/tslib/lib:/apps/qt/qtlib/:/apps/qt/qtlib/fonts
红色部分
若出现:QFontDatabase: Cannot find font directory /app/qt/qtlib/fonts - is Qt installed correctly?
Aborted 这个错误,
就添加
export QT_QWS_FONTDIR=/mnt/qtlib/fonts
这个环境变量
详细错误见:http://blog.csdn.net/liuzijiang1123/article/details/48847521