linux下嵌入式QT开发环境的搭建

2019-07-12 19:08发布

主机环境:ubuntu10.4 编译器:gcc 4.4.3 交叉编译器:arm-linux-gcc 4.3.2 开发板:mini2440   注意:首先确保交叉编译器已加入路径PATH,如果没有加入,执行                    export PATH=$PATH:/usr/local/arm/4.3.2/bin   1.首先安装触摸屏库tslib1.4
下载:http://u.115.com/file/f939c39bc9 解压,cd 到其目录下
安装automake,autoconf,libtool
    sudo apt-get install automake autoconf libtool
配置 ./autogen.sh
./configure --prefix=/home/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes ac_cv_func_malloc_0_nonnull=yes
然后编译安装:
make
make insall
触摸屏的库就生成好了,在/home/tslib目录下,只要将它放到开发板上,设置下环境变量就可以用了.

2.安装Qt-x11,Qt-Embedded-x86和Qt-Embedded-arm
Qt-x11用于PC机上的开发,主要产生design和qvfb(开发板虚拟工具)
Qt-Embedded-x86是QT基于X86的嵌入式开发工具
Qt-Embedded-arm是QT基于arm的嵌入式开发工具
(1)选择要安装的版本,mini2440 用编译器4.3.2,配合的qt/e版本最低应该是4.5.1
(2)安装好各种库:libx11-dev,libxtst-dev,libxext-dev,libxext6
(3)进入root用户模式.
(4).下载源代码包:
    qt-x11-opensource-src-4.5.0.tar.bz2
    qt-embedded-linux-opensource-src-4.5.1.tar.bz2
    下载地址:ftp://ftp.qt.nokia.com/qt/source/
(5).编译及安装qt-x11-opensource-src-4.5.0
    tar xjvf qt-x11-opensource-src-4.5.0.tar.bz2
    cd qt-x11-opensource-src-4.5.0
    ./configure
    make
    make install
    历经漫长的编译过程,约一个半小时,默认安装在/usr/local/Trolltech/Qt-4.5.0下.
(6)生成qvfb虚拟工具
    cd ~/qt-x11-opensource-src-4.5.0/tools/qvfb
    make
    会在qt-x11-opensource-src-4.5.0/bin下生成qvfb
(7)编译及安装qt-embedded-linux-opensource-src-4.5.1的x86和arm版本
    解压后复制一份,分别用来编译产生x86版本和arm版本
    ===========================================================================================================================
    x86版本:(安装目录/usr/local/Trolltech/Qt-Embedded-4.5.1-x86)
        ./configure -prefix /usr/local/Trolltech/Qt-Embedded-4.5.1-x86 -embedded x86 -qvfb -fast -release -no-qt3support
        make
        make install
    ===========================================================================================================================
    arm版本:    (安装目录/usr/local/Trolltech/Qt-Embedded-4.5.1-arm)
        ./configure -prefix /usr/local/Trolltech/Qt-Embedded-4.5.1-arm -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb -confirm-license -qt-mouse-tslib -I/home/tslib/include -L/home/tslib/lib
        make
        make install
    ===========================================================================================================================
        注:
            所有选项的意思请查看 ./configure -help
            -prefix 后面是的安装目录
            -I/home/tslib/include -L/home/tslib/lib 是触摸屏库,如果不想要触摸屏就不要了,可以根据上面的选项自行修改
 
(8).设置环境变量
    三个版本所用的工具有些名字是一样的,但工作显然不一样,所以要通过临时设置环境变量指定当前工作的QT环境,通过设置PATH和LD_LIBRARY_PATH实现
    为x11版本建立环境脚本setenvx11.sh,内容:
        QTEDIR=/usr/local/Trolltech/Qt-4.5.0
        PATH=$PATH:$QTEDIR
        LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTEDIR/lib
    使用时只要在终端运行命令:source setenvx11.sh 就可以了,注意最好分不同的
    我们在运行的时候分别运行对应的脚本即可,比如我们要用qt-x11:
    cd /usr/local/Trolltech/Qt-4.5.0
    source setenv.sh
    然后就可以使用qmake和make了.     将qvfb复制到/usr/local/Trolltech/Qt-Embedded-4.5.1-x86/bin目录下,方便虚拟,比如虚拟xx程序:     qvfb -width 240 -height 320&     ./xx -qws
 
 
 
3.下面设置开发板上的QT/E环境.
(1)给板子加入QT/E库文件,即Qt-Embedded-4.5.1-arm/lib目录下的库文件
(2)给板子增加触摸屏库,将tslib整个拷到开板上.
(3)配置环境变量
配置脚本为:
export TSLDIR=tslib
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0 #触摸屏设备文件
export TSLIB_PLUGINDIR=$TSLDIR/lib/ts
export TSLIB_CONFFILE=$TSLDIR/etc/ts.conf #触摸屏库配置文件
export TSLIB_CALIBFILE=/etc/pointercal #触摸屏定位文件
export QWS_MOUSE_PROTO=tslib:/dev/input/event0
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$TSLDIR/lib:$QTDIR/lib #将库加入动态共享库路径
注:该配置脚本应在系统启动时运行.
(4)修改触摸屏库的配置文件etc/ts.conf,去掉module_raw input前的#号,开启该项功能
   初始化触摸屏,主要是生成定位文件,运行tslib/bin/ts_calibrate
   然后在屏上点五下,实现定位.
这样就设置好了.