Qt4.5.1移植到mini2440

1370阅读 0评论2014-05-04 eastgeneral
分类:嵌入式

      Qt-embedded-linux-opensource-src-4.5.1移植到mini2440开发板技术说明   

1.开发环境及所需资源:

   虚拟机系统fedora 9

   交叉编译工具arm-linux-gcc-4.3.2.tar.gz  

   所需资源:  

tslib-1.4.tar.gz 下载网址(如下)

      

qt-embedded-linux-opensource-src-4.5.1.tar.gz  下载网址(如下): 

   

   qt-x11-linux-opensource-src-4.5.1.tar.gz 下载网址(如下)

   

2.安装交叉编译环境:

   把arm-linux-gcc-4.3.2.tar.gz放到/tmp目录下

   # tar zxvf arm-linux-gcc-4.3.2.tar.gz -C /

       注意:arm-linux-gcc-4.3.2.tgz后面是大写的C,而且大写的C与斜线/之间有空格

        小写的 -c 是制作tar文件
        大写的 -C 是指定解压缩存放目录用的,这块是指根目录

        解压之后就产生了 /usr/local/arm/4.3.2目录      

 #gedit /root/.bashrc  或者 vi /root/.bashrc 或者去/etc/bashrc最后一行加也行

   在最后一行加入:

       export PATH=$PATH:/usr/local/arm/4.3.2/bin

   #reboot                            //重启

   #arm-linux-gcc -v   或者 echo $PATH  //显示arm-linux-gcc的版本信息

3.安装tslib-1.4

    这是个触摸屏的库文件,据网上说qt4只支持tslib-1.4。我没有实验别的,就用了这个,可以成功。

    tslib-1.4.tar.gz放到/home目录下

    #tar xvzf tslib-1.4.tar.gz

    #cd tslib

    #./autogen.sh

    #./configure (两个-) --prefix=/home/mytslib/ --host=arm-linux  (这里是有空格的)

         ac_cv_func_malloc_0_nonnull=yes

    #make

    #make install

    这样以后可以看到/home/mytslib/下有了库文件,移植时会用到!先不详细说明。

4.安装qt-x11-linux-opensource-src-4.5.1.tar.gz

    把qt-x11-linux-opensource-src-4.5.1.tar.gz放到/opt目录下

    #tar xvzf qt-x11-linux-opensource-src-4.5.1.tar.gz

    #cd qt-x11-linux-opensource-src-4.5.1

    #./configure

    #gmake      //过程很长,三个多小时吧

    #gmake install

    这是安装PC机上的qt4,方便设计,在PC机上能够成功了,在交叉编译就方便了!然后制作一个运行环境变量的文件,方便改变环境变量设置,如下在当前文件夹下接着输入

   #gedit setenv-x11.sh
这时会跳出来一个编辑文本,在里面输入:
    PATH=/usr/local/Trolltech/Qt-4.5.1/bin:$PATH
    QTDIR=/usr/local/Trolltech/Qt-4.5.1
    MAINPATH=$QTDIR/man:$MAINPATH
    LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    export PATH QTDIR MAINPATH   LD_LIBRARY_PATH

然后保存!在每次进入qt-x11-linux-opensource-src-4.5.1目录中要 #source setenv-x11.sh
把环境变量设置好。

  5.安装qt-embedded-linux-opensource-src-4.5.1.tar.gz
    把qt-embedded-linux-opensource-src-4.5.1.tar.gz放到/tmp目录下
    在安装qt-embedded-linux-opensource-src-4.5.1.tar.gz之前先在根目录下建立两个目录(即文件夹)如下步骤:
    #cd /     进入根目录
    #mkdir mini2440   这里准备存放qt-embedded-linux-opensource-src-4.5.1的库文件,最后要移植到开发板的
    #mkdir tslib    这里准备放触屏的库文件,最后也会移植到开发板
    好了,现在安装qt-embedded-linux-opensource-src-4.5.1.tar.gz
    #cd /tmp  确定qt-embedded-linux-opensource-src-4.5.1.tar.gz放到/tmp目录下了才行
    #tar xvzf qt-embedded-linux-opensource-src-4.5.1.tar.gz
    #cd qt-embedded-linux-opensource-src-4.5.1.

    #./configure --prefix=/mini2440   -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/mytslib/include -L/home/mytslib/lib

    #gmake
    #gmake install

这样,嵌入式版本的qt4也装成功了,若想进行交叉编译,首先也得改变环境变量,所以也可以在当前目录下建一个环境变量的文件setenv-embedded.sh 如下:
   #gedit setenv-embedded.sh
这时跳出一个编辑文本输入:
    PATH=/mini2440/bin:$PATH
    QTDIR=/mini2440
    MAINPATH=$QTDIR/man:$MAINPATH
    LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    export PATH QTDIR MAINPATH   LD_LIBRARY_PATH

保存退出。每次进行qt4-embedded的交叉编译前先# source setenv-embedded.sh。
到目前为止,两个版本的qt4在PC机上的安装算是结束了,下一步要移植嵌入式的qt4库文件到开发板

6.制作库文件
   前面介绍了在根文件系统下建立两个目录mini2440和tslib1.4.经过第5步后,mini2440内已经有了库文件,现在把触屏的库文件移植到tslib目录。
   #cd /home/mytslib   进入触屏库文件所在地
   #cp -fr lib /tslib      把lib目录放到根目录的tslib目录下
在根文件的mini2440文件中除了有lib目录,还有bin,examples等目录,但是移植到开发板的文件只需要mini2440下的lib目录。lib目录有30多兆,若太大,可以删除/lib/fonts中的一些字体!我的没有删除任何字体!我的mini2440是64兆的,剩余大概13兆了,显然不够,于是我把它自带的Qt2的库文件及有关qt2的文件全删除了(所以现在没有办法运行qt2),剩余47兆,足够运行qt4.那么接下来解释移植的过程了:

7,例子 hello world!
   A,PC机下编译:
     进入PC机中/opt/qt-x11-linux-opensource-src-4.5.1
     #cd /opt/qt-x11-linux-opensource-src-4.5.1.
     #source setenv-x11.sh   改变环境变量,设置为适合pc机的开发环境
     #mkdir hello       
     #cd hello  进入hello目录
     #vi hello.cpp  编写hello world 程序,在hello.cpp中输入以下代码:
  #include
  #include

  int main(int argc, char *argv[])
  {
      QApplication app(argc,argv);
      QPushButton b("Hello World !");
      b.show();
      QObject::connect(&b,SIGNAL(clicked()),&app,SLOT(quit()));
      return app.exec();
  }

保存退出。然后在当前目录下继续执行以下命令:
   #qmake -project
   #qmake
   #make
   #ls
这时在这个目录下可以看到生成了可执行文件hello,然后
   #./hello
你会发现,跳出了一个hello world的对话框,这样一个简单的界面就成功了

上一篇:图像处理、模式识别、模式分类、机器视觉推荐图书
下一篇:APM源码学习笔记-更新1