• 编译QT4.5


       
    [linux嵌入式方向]交叉编译qt-embedded-linux-opensource-src-4.5.1源码
    farsight2009 发表于 2009-7-13 14:38:00

    作者:孙晓明,华清远见嵌入式学院讲师。

    首先要有配置好的环境,本文使用的编译环境如下:

    主机系统:Ubuntu 8.10

    主机编译器:gcc 版本 4.3.2

    交叉编译器:arm-softfloat-linux-gnu-gcc

    软件资源:qt-embedded-linux-opensource-src-4.5.1.tar.gz
                  qt-x11-opensource-src-4.5.1.tar.gz

    因为一般嵌入式设备上都是在framebuffer的方式,在X11上就是用qvfb 来模拟framebuffer的,我们平时开发也都是在PC上完成的,所以我们需要先安装X11版的Qt来获取qvfb这个工具。嵌入式的开发有了 qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。

    一、下载

    qt-embedded-linux-opensource-src-4.5.1.tar.gz
        qt-x11-opensource-src-4.5.1.tar.gz

    二、编译安装qt-embedded

    # tar -zxvf qt-embedded-linux-opensource-src-4.5.1.tar.gz
        # cd qt-embedded-linux-opensource-src-4.5.1
        # ./configure -embedded x86 -qvfb
        # make
        # make install
        qt-embedded 被安装在这个目录下/usr/local/Trolltech/QtEmbedded-4.5.1

    设置环境变量:

    # vi ~/.bashrc

    把下面的加上去

    export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.1
        export PATH=/usr/local/Trolltech/QtEmbedded-4.5.1/bin:$PATH
        export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.1/lib:$LD_LIBRARY_PATH

    至此,qt-embedded安装完毕

    三、编译安装qt-x11

    # tar -zxvf qt-x11-opensource-src-4.5.1.tar.gz
        # cd qt-x11-opensource-src-4.5.1
        # ./configure
        # make
        # make install

    qt-x11 被安装到此目录下/usr/local/Trolltech/Qt-4.5.1

    编译qvfb:

    # cd qt-x11-opensource-src-4.5.1/tools/qvfb
        # make
    /*****Added by PengCarl (12 December 2009)*****/
    出现错误:/usr/bin/ld: cannot find -lXtst
    解决:ubuntu没装有libxtst-dev,解决如下
    # aptitude install libxtst-dev
    /**********************************************/
    把生成的qvfb复制到qt-embedded的bin下,如

    # cp qt-x11-opensource-src-4.5.1/bin/qvfb /usr/local/Trolltech/QtEmbedded-4.5.1/bin

    至此,qt-x11安装完毕完毕

    四、测试

    # cd /usr/local/Trolltech/QtEmbedded-4.5.1/demos/
        # qvfb &
        # ./chip -qws

    随即我们就可以看到qt自带的例程图像了。


    五、编译qt自带的例程
    # cd /usr/local/Trolltech/QtEmbedded-4.5.1/demos/
     # qmake chip.pro  (生成Makefile文件)
     # make

    5、编译安装tslib1.4
    1.首先下载tslib-1.4.tar.gz,下载地址:

    http://blog.chinaunix.net/u2/75270/showart_1793535.html里面自己找

    2.解压文件后

    记得现安装三个东西

    #sudo apt-get install autoconf

    #sudo apt-get install automake

    #sudo apt-get install libtool

    确认已经安装并设置好arm-linux-gcc

    然后进行编译

    #cd tslib/

    #export CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc

    #export CXX=/usr/local/arm/3.4.1/bin/arm-linux-g++

    运行

    #./autogen.sh

    #echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

    配置安装参数

    #./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no PLUGIN_DIR=/usr/local/arm/tslib/plugins -prefix=/usr/local/arm/tslib/build -host=arm-linux --cache-file=arm-linux.cache 2>&1 | tee conf_log

    编译

    #make 2>&1 | tee make_log

    #make install

    编译后会出现bulid文件夹

    #cd build/etc

    #gedit ts.conf

    去掉module_raw input前面的#号和空格移植到开发板

    把build 文件夹拷贝到开发板相应的地方。我的就是拷贝到/home/tslib下

    环境变量

    #!/bin/sh

    export set T_ROOT=/home/tslib/build

    export set LD_LIBRARY_PATH=$T_ROOT/lib

    export set TSLIB_CONSOLEDEVICE=none

    export set TSLIB_FBDEVICE=/dev/fb0

    #export set TSLIB_TSDEVICE=/dev/event0

    export TSLIB_TSDEVICE=/dev/h3600_tsraw

    export set TSLIB_PLUGINDIR=$T_ROOT/lib/ts

    export set TSLIB_CONFFILE=$T_ROOT/etc/ts.conf

    export set TSLIB_CALIBFILE=/home/tslib/build/etc/pointercal

    cd /home/tslib/build/bin

    ./ts_calibrate

    在终端用env查看环境变量如下:

    [root@utu-Linux]\$ env

    TSLIB_TSDEVICE=/dev/event0

    USER=root

    LD_LIBRARY_PATH=/home/tslib/build/lib

    OLDPWD=/home/tslib/build

    HOME=/

    TSLIB_FBDEVICE=/dev/fb0

    PS1=[root@utu-Linux]\$

    TSLIB_PLUGINDIR=/home/tslib/build/lib/ts

    T_ROOT=/home/tslib/build

    TSLIB_CONSOLEDEVICE=none

    LOGNAME=root

    TERM=vt102

    PATH=/sbin:/usr/sbin:/bin:/usr/bin

    TSLIB_CONFFILE=/home/tslib/build/etc/ts.conf

    SHELL=/bin/sh

    PWD=/home/tslib/build/bin

    TSLIB_CALIBFILE=/home/tslib/build/etc/pointercal

    [root@utu-Linux]\$

    进入 /home/tslib/build/bin目录下, ./ts_calibrate 就行了! 

    6、编译安装QtEmbedded-4.5.2-arm版本

    A、解压

    root@hrixin-desktop:/work/qte# tar xjvf qt-embedded-linux-opensource-src-4.5.2.tar.bz2

    root@hrixin-desktop:/work/qte# mv qt-embedded-linux-opensource-src-4.5.2 qt-embedded-linux-opensource-src-4.5.2-arm

        root@hrixin-desktop:/work/qte# cd qt-embedded-linux-opensource-src-4.5.2-arm

    B、配置编译:

        ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.2-arm -embedded arm \ -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 -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus \ -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen \ -no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-glib -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib

        注意这个目录要跟你的tslib安装目录相同!!!                 To reconfigure, run 'make confclean' and 'configure'.

        root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-arm# make
      
        C、安装到/usr/local/Trolltech/QtEmbedded-4.5.2-arm目录下:
        root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-arm# make install


    To reconfigure, run 'make confclean' and 'configure'.


    0

    标签: QT移植 
    移植QtEmbedded-4.5.2 tslib1.4 到 S3C2440

    开发环境

        操作系统:  Vmware6.0 + Ubuntu 8.04。
        交叉编译器:arm-linux-gcc-4.3.2
        目标板:     mini2440 + NEC3.5寸屏
      
    1、下载源码包:

        在:http://www.cnblogs.com/kenter/admin/ftp://ftp.qtsoftware.com/qt/source/下载
        qt-embedded-linux-opensource-src-4.5.2.tar.bz2
        qt-x11-opensource-src-4.5.2.tar.bz2

        在http://blog.chinaunix.net/u2/86708/showart_1924834.html上下载tslib1.4.tar.gz

    2、配置ubuntu 8.04编译环境

        安装g++:  sudo  apt-get g++
        安装编译X11用到的库:sudo apt-get libx11-dev libxext-dev

        安装libxtst-dev: sudo aptitude install libxtst-dev 否则编译qvfb出错。

    3、编译及安装qt-x11-opensource-src-4.5.2

        qt-x11版本可以产生Qt开发工具,如designer、qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发
        板,也可以开发Qt应程序。
        tar xjvf qt-x11-opensource-src-4.5.2.tar.bz2
        cd qt-x11-opensource-src-4.5.2
        ./configure
        make
        make install
        历经漫长的编译过程,默认安装在/usr/local/Trolltech/Qt-4.5.2下,编译完成后源程序不要删除,还有用。

    4、编译配置QtEmbedded-4.5.2-x86版本

        A、解压
        root@hrixin-desktop:/work/qte# tar xjvf qt-embedded-linux-opensource-src-4.5.2.tar.bz2
        root@hrixin-desktop:/work/qte# mv qt-embedded-linux-opensource-src-4.5.2 qt-embedded-linux-opensource-src-4.5.2-x86
        root@hrixin-desktop:/work/qte# cd qt-embedded-linux-opensource-src-4.5.2-x86
      
        B、配置编译:
        ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.2-x86 -embedded x86 -qvfb
        root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-x86# make

        C、安装到/usr/local/Trolltech/QtEmbedded-4.5.2-x86目录下:
        root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-x86# make install
      
        D、建立脚本文件:setenv_arm.sh,输入以下内容:
        export QTEDIR="/usr/local/Trolltech/QtEmbedded-4".5.2-x86/
        export PATH="/usr/local/Trolltech/QtEmbedded-4".5.2-x86/bin/:$PATH
        export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/lib/:$LD_LIBRARY_PATH
      
        E、编译x86版QT应用程序前,先执行此脚本文件:
        root@hrixin-desktop:/usr/local/Trolltech/QtEmbedded-4.5.2-x86# source setenv-x86.sh
      
    5、编译安装tslib1.4

        A、安装编译过程需用到的程序
            root@hrixin-desktop:/home/hrixin# apt-get install autoconf(或autoconf2.13)
            root@hrixin-desktop:/home/hrixin# apt-get install automake
            root@hrixin-desktop:/home/hrixin# apt-get install libtool
      
        B、配置编译
            root@hrixin-desktop:/work/qt# tar xzvf tslib-1.4.tar.gz
            root@hrixin-desktop:/work/qt# cd tslib
            生成./configure
            root@hrixin-desktop:/work/qt/tslib# source autogen.sh
            root@hrixin-desktop:/work/qt/tslib# ./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
            root@hrixin-desktop:/work/qt/tslib# make

        C、安装
            root@hrixin-desktop:/work/qt/tslib# make install-strip //生成瘦身应用程序和库
            打包
            root@hrixin-desktop:/usr/local# tar czvf tslib.tar.gz tslib

        D、复制到NFS文件系统/usr/local目录下解压
            root@hrixin-desktop:/work/root_qtopia/usr/local# tar xzvf tslib.tar.gz
          
        E、设置环境变量,校准触摸屏。
            在天开板终端建立脚本文件,并执行:
            export TSLIB_ROOT=/usr/local/tslib
            export TSLIB_TSDEVICE=/dev/input/event0
            export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
            export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
            export TSLIB_CALIBFILE=/etc/pointercal
            export TSLIB_FBDEVICE=/dev/fb0
            export QWS_MOUSE_PROTO=Tslib:/dev/input/event0

            注意:触摸屏的前提是你的触摸屏驱动已经写好,并加载进了内核.
            你可以测试有没有加载触摸屏驱动,cat /dev/input/event0(这只是我的板子上的触摸屏) ,
            点击触摸屏,看终端有无显示,若有则表明正确。
          
            在开发板/usr/local/tslib/bin目录下执行校准触摸屏程序:
            [root@FriendlyARM bin]# ./ts_calibrate
            可以运行此目录下的其他程序进行测试。
          
        至此,触摸屏程序能顺利运行,接下来移植QtEmbedded-4.5.2,设置好环境变量。
     
    6、编译安装QtEmbedded-4.5.2-arm版本

        A、解压
        root@hrixin-desktop:/work/qte# tar xjvf qt-embedded-linux-opensource-src-4.5.2.tar.bz2
        root@hrixin-desktop:/work/qte# mv qt-embedded-linux-opensource-src-4.5.2 qt-embedded-linux-opensource-src-4.5.2-arm
        root@hrixin-desktop:/work/qte# cd qt-embedded-linux-opensource-src-4.5.2-arm

        B、配置编译:
        ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.2-arm -embedded arm \
        -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 -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus \
        -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen \
        -no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-glib -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib

        注意这个目录要跟你的tslib安装目录相同!!!

        root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-arm# make
      
        C、安装到/usr/local/Trolltech/QtEmbedded-4.5.2-arm目录下:
        root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-arm# make install

        D、打包编译安装好的QtEmbedded库文件:
        root@hrixin-desktop:/usr/local/Trolltech# tar czvf QtEmbedded-4.5.2-arm.tar.gz QtEmbedded-4.5.2-arm

        E、建立脚本文件:setenv_arm.sh,输入以下内容:
        export QTEDIR="/usr/local/Trolltech/QtEmbedded-4".5.2-arm/
        export PATH="/usr/local/Trolltech/QtEmbedded-4".5.2-arm/bin/:$PATH
        export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib/:$LD_LIBRARY_PATH
      
        F、编译ARM版QT应用程序前,先执行此脚本文件:
        root@hrixin-desktop:/usr/local/Trolltech/QtEmbedded-4.5.2-arm# source setenv-arm.sh

        编译calculator
        root@hrixin-desktop:/work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator# qmake calculator.pro
        root@hrixin-desktop:/work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator# make

    7、在主机上建立NFS启动根文件系统,把编译好的库文件复制到相关目录下。

        A、文件系统目录为:/work/root_qtopia/,修改rcS
        [root@FriendlyARM /]# vi /etc/init.d/rcS
        #/bin/qtopia &
      
        建立Trolltech目录:
        root@hrixin-desktop:/work/root_qtopia/usr/local# mdkir Trolltech
      
        B、把打包好的库文件:QtEmbedded-4.5.2-arm.tar.gz复制到/work/root_qtopia/usr/local/Trolltech目录下
        root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech# tar xzvf QtEmbedded-4.5.2-arm.tar.gz
        root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech# cd QtEmbedded-4.5.2-arm/
      
        C、复制5-F中编译好的calculator可执行文件到此目录下:
        root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech/QtEmbedded-4.5.2-arm# cp /work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator/calculator ./
     
        D、建立脚本文件
        root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech/QtEmbedded-4.5.2-arm# gedit setenv.sh
        输入以下内容:(把设置tslib环境变量的脚本文件内容,也添加进来)
            #!/bin/sh
            export TSLIB_ROOT=/usr/local/tslib
            export TSLIB_TSDEVICE=/dev/input/event0
            export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
            export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
            export TSLIB_CALIBFILE=/etc/pointercal
            export TSLIB_FBDEVICE=/dev/fb0
            export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
            export QTDIR="/usr/local/Trolltech/QtEmbedded-4".5.2-arm
            export QPEDIR="/usr/local/Trolltech/QtEmbedded-4".5.2-arm
            export LD_LIBRARY_PATH=$QTDIR/lib:$TSLIB_ROOT/lib:/usr/local/lib:$LD_LIBRARY_PATH
      
        E、至此,主机上的文件系统已经配置好,开板通过NFS挂载到此文件系统启动。
        启动后,开发板串口终端执行刚才的脚本文件(通过NFS启动,执行脚本文件未成功),设置好环境变量。
        检查环境变量是否成功:
        [root@FriendlyARM QtEmbedded-4.5.2-arm]# echo $QTDIR
        /usr/local/Trolltech/QtEmbedded-4.5.2-arm
        成功!
        如果没有输出,则失败。同样的方法检查其他两个环境变量。
      
        F、运行calculator
        [root@FriendlyARM QtEmbedded-4.5.2-arm]# ./calculator -qws &


    Qtopia移植

    作者:曹忠明,华清远见嵌入式学院讲师。

    Qtopia 是Trolltech 公司为采用嵌入式Linux操作系统的消费电子设备而开发的综合应用平台, Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。下面便是他的移植过程。

    硬件s3c2410
        主机环境:red hot企业版 5.0
        交叉编译工具:gcc-3.4.5-glibc-2.3.6
        主机编译工具:gcc-4.1
        Qtopia源码:qtopia-opensource-src-4.2.0.tar.gz
        tslib源码:tslib-1.4.tar.gz

    一、tslib移植

    第一步:解压tslib-1.4.tar.gz

            tar -zxvf tslib-1.4.tar.gz

    第二步:进入解压过的目录

            cd tslib-1.4

    第三步:执行tslib-1.4目录下的autogen.sh

            ./autogen.sh

    这一步需要安装一些工具:sudo apt-get install automake

    第四步:执行autogen.sh脚本所生成的Makefile文件

    请打入以下命令:
        echo "ac_cv_func_malloc_0_nonnull=yes" >$ARCH-linux.cache
        ./configure --host=arm-softfloat-linux-gnu   --prefix=/home/linux/tslib --cache-file=$ARCH-linux.cache


    --host是指你的交叉编译器的前最;例如:你的交叉编译器是arm-linux-gcc,则--host=arm-linux.如果是arm-softfloat-linux-gnu-gcc
    则--host=arm-softfloat-linux-gnu

    --prefix 是你执行make install 的时候编译后生成的可执行文件和库文件以及配置文所安装的目录;

    configure文件下还有好多选项;你可以执行./configure --help 来进行选择其他项,不过在这里这些选项就够了。

    第五步:执行make

    第六步:执行make installls


    第七步:把指定安装目录下的tslib的文件都copy到你所挂载的根文件下

             sudo cp -rf /home/linux/tslib/*       /rootfs/tslib

    第八步:修改/rootfs/tslib下的etc目录中ts.cong文件

            vi ts.conf   将第二行的#module_raw input修改成module_raw input 注意一定要顶格写否则程序执行时会发生读取ts.conf错误

    二、Qtopia移植

    第一步:解压qtopia-opensource-src-4.2.0.tar.gz

             tar zxvf qtopia-opensource-src-4.2.0.tar.gz
                 mv qtopia-opensource-4.2.0 source

    第二步:创建在source同级目录下创建目录target

            mkdir target

    第三步:修改源码包

            1、
                # cd source
                # cd src/libraries/qtopiabase/
                # cp custom-linux-cassiopeia-g++.h custom-linux-arm-g++.h
                # cp custom-linux-cassiopeia-g++.cpp custom-linux-arm-g++.cpp

            2、修改时区信息

            # vi src/libraries/qtopia/qtimezone.cpp

            将114行的 /usr/share/zoneinfo/ 改为/Qtipia/zoneinfo/ ,保存退出。
                # vi src/settings/systemtime/settime.cpp
                将318行的 /usr/share/zoneinfo/ 改为/Qtipia/zoneinfo/ ,保存退出。

            3、裁减Qtopia core的库(下列操作后在屏幕上会出现一个光标,否则没有光标根据需求配置)

           (1)# vi qtopiacore/qconfig-qpe.h

           首先注释掉关于鼠标光标的宏定义,让程序运行时,触摸屏中央有光标出现:
                // Qtopia Core
                /*
                #ifndef QT_NO_QWS_CURSOR
                # define QT_NO_QWS_CURSOR
                #endif
                */
                /*
                #ifndef QT_NO_QWS_MOUSE
               # define QT_NO_QWS_MOUSE
                #endif
                #ifndef QT_NO_QWS_MOUSE_AUTO
                # define QT_NO_QWS_MOUSE_AUTO
                #endif
                */
                其它宏定义根据需要进行注释。
                保存后将qconfig-qpe.h拷贝到global目录。
                # cp qtopiacore/qconfig-qpe.h qtopiacore/qt/src/corelib/global/qconfig-qpe.h (必须进行的操作)

           (2)注释掉其他文件里的QT_NO_QWS_CURSOR的定义

            # vi qtopiacore/qt/src/corelib/global/qfeatures.h

            注释掉如下内容:
                /*
                #if !defined(QT_NO_QWS_CURSOR) && (defined(QT_NO_CURSOR))
                #define QT_NO_QWS_CURSOR
                #endif
                */
                保存退出。

            (3)# vi qtopiacore/qt/src/corelib/global/qglobal.h

            注释掉以下内容:
                //# define QT_NO_QWS_CURSOR

            4、下面是对编译过程中出现的错误进行的一些修改:

            (1)vim qtopiacore/qt/tools/qvfb/qvfbshmem.cpp

            注释掉asm/page.h
                //#include <asm/page.h>

            (2)vim qtopiacore/qt/tools/qvfb/qvfbmmap.cpp

            注释掉asm/page.h
                //#include <asm/page.h>

            并修改如下内容

            unsigned char *data;
                uint data_offset_value = sizeof(QVFbHeader);
                if (data_offset_value % PAGE_SIZE)
                data_offset_value += PAGE_SIZE - (data_offset_value % PAGE_SIZE);

            为:

            unsigned char *data;
                uint data_offset_value = sizeof(QVFbHeader);
                const int page_size = getpagesize();
                if (data_offset_value % page_size)
                data_offset_value += page_size - (data_offset_value % page_size);

            (3)vim src/libraries/qtopiabase/qmemoryfile_unix.cpp +128

            修改

            f = ::open(tmpFile.toLatin1(), O_CREAT | O_WRONLY);

            为:

            f = ::open(tmpFile.toLatin1(), O_CREAT | O_WRONLY ,0777);

            4、修改交叉工具

            vim qtopiacore/qt/mkspecs/qws/linux-arm-g++/qmake.conf

            将文件中的arm-linux-***全部修改为arm-softfloat-linux-gnu-**

            这样做的前提是我的交叉工具链是arm-softfloat-linux-gnu,如果你的是arm-linux就不用改了。

    第四步:生成Makefile

    cd ../target

    ../source/configure -release -image /Qtopia -prefix /Qtopia -xplatform linux-arm-g++ -arch arm -no-qvfb -displaysize 320x240 -no-modem -extra-qtopiacore-config "-release -xplatform qws/linux-arm-g++ -embedded arm -qconfig qpe -depths 4,8,16,32 -qt-sql-sqlite -no-mouse-linuxtp -qt-mouse-tslib -I/home/linux/tslib/include -L/home/linux/tslib/lib " 2>../configureERR.tx

    注意:这里/Qtopia是最后Qtopia的安装路径,安装到主机的某个路径下,最终这个路径和目标板上的路径必须一致。

    主要配置选项解说如下:

    -xplatform linux-arm-g++ -arch arm

    目标平台为arm-linux,体系结构为arm。

    -no-qvfb

    目标平台已支持framebuffer,因而不使用虚拟帧缓冲。

    -extra-qtopiacore-config

    为Qtopia core 配置选项。

    -xplatform qws/linux-arm-g++ -embedded arm

    目标平台编译配置文件使用qtopiacore/qt/mkspecs/qws/linux-arm-g++目录下的配置文件,嵌入式平台为arm。

    -qconfig qpe

    使用配置文件qconfig-qpe.h,若使用qconfig-large.h配置文件,则使用-qconfig large选项。

    -qt-sql-sqlite

    数据库支持Sqlite。

    -qt-kbd-usb

    键盘支持usb协议。

    -no-mouse-linuxtp -qt-mouse-tslib

    -I/home/linux/tslib/include -L/home/linux/tslib/lib

    触摸屏协议不支持linuxtp,支持tslib,并在后面添加上刚才编译的tslib的头文件和库。

    2>../qtopiaconfigureERR.txt

    最后将配置过程中的错误输出到qtopiaconfigureERR.txt文件中。

    第五步:make

    第六步:make install

    第七步:cp source/etc/zoneinfo /Qtopia/ -a

    第八步:将安装和的目录考到nfsroot目录下

    cp /Qtopia /rootfs -a

    第九步:配置目标板环境变量脚本

    vim qtopia.sh

    添加如下内容:

    #!/bin/sj
        export TSLIB_ROOT=/tslib
        export TSLIB_TSDEVICE=/dev/event0
        export LD_LIBRARY_PATH=/tslib/lib:$LD_LIBRARY_PATH
        export QWS_SIZE=320x240
        export TSLIB_FBDEVICE=/dev/fb0
     网管xport TSLIB_PLUGINDIR=/tslib/lib/ts
        export TSLIB_CONSOLEDEVICE=none
        export TSLIB_CONFFILE=/tslib/etc/ts.conf
        export POINTERCAL_FILE=/etc/pointercal
        export QWS_MOUSE_PROTO=Tslib:/dev/event0
        export TSLIB_CALIBFILE=/etc/pointercal
        export TSLIB_TSEVENTTYYPE=H3600i
        export LD_LIBRARY_PATH=/Qtopia/lib:$LD_LIBRARY_PATH
        export QWS_SW_CURSOR
        export set HOME=/root
        export set QPEDIR=/Qtopia
        export set QWS_KEYBOARD="TTY:/dev/tty1""
        export QWS_DISPLAY="LinuxFb:mmWidth35:mmHeight45:0"

    三、启动Qtopia

    第一步:目标板开机

    第二步:运行脚本qtopia.sh

    ./qtopia.sh

    第三步:运行qpe

    /Qtopia/bin/qpe

    这个时候就能看到一个漂亮的界面了。

    网关配置

    ifconfig eth0 192.168.0.165 netmask 255.255.255.0

  • 相关阅读:
    html input type=file 选择图片,图片预览 纯html js实现图片预览
    asp.net mvc Controller控制器返回类型
    webrequest HttpWebRequest webclient/HttpClient
    js中__proto__和prototype constructor 的区别和关系
    JQuery的ajaxFileUpload的使用
    cuda中当数组数大于线程数的处理方法
    cuda中threadIdx、blockIdx、blockDim和gridDim的使用
    cuda和gcc版本不兼容
    【转】CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
    matlab练习程序(地图上画经纬度)
  • 原文地址:https://www.cnblogs.com/kenter/p/1800898.html
Copyright © 2020-2023  润新知