Qtopia2.2.0编译成功经验分享

经过一段漫长而痛苦的过程(几次差点就要放弃)之后,今天qtopia2.2.0pc版本和ARM-LINUX版本都终于编译成功了,下面我和大家分享一下pc机版本的qtopia2.2.0编译过程中的遇到的错误及其解决办法,希望与大家一起进步。(arm-linux版本的编译参照飞凌提供的6410的qt移植视频中的五和六,先编译第三方库,按照视频上来就没有问题,编译完第三方库以后,剩下的就和pc版本的相差无几了)

环境:Ubuntu10.10  
编译器: gcc version 4.4.5 
主机:奔四  
内存:512+256M   
VMware版本:7.0

注意事项:
     在编译之前先确保你的ubuntu系统中有X11的SDK库,Qtopia编译过程中需要使用X11SDK里面的一些头文件,使用以下命令,即可完成安装:   
     apt-get install libx11-dev libxext-dev libxtst-dev

另外,在修改完第一处错误,重新编译之前,先修改一下build脚本文件,因为重新执行build命令,该脚本会把刚才编译中的qtopia-free-2.2.0文件夹删除,重新解压,形成新的qtopia-free-2.2.0,开始编译,这样刚才的修改就失去意义了。修改build脚本的方法如下:
      将  rm -fr qtopia-free-2.2.0
          tar xfvz qtopia-free-2.2.0.tar.gz 这两条语句的前面分别加上#  ,注释掉,保存退出,重新执行  ./build


在编译过程中会出现很多的错误,包括飞凌提供的ok6410 QT移植百科全书里面的,但是手册里面罗列的不全,下面我将我在编译过程实际遇到的编译错误及其解决办法写一下(其中的一些错误实际中没有遇到,是从网上搜集的,供朋友们参考):
 
  错误一:
        /usr/bin/ld: cannot find -lXmu
        collect2: ld returned 1 exit status
  错误二:
         Creating pngscale...make[1]: Entering directory `/root/yizhi/qtopia-free-2.2.0/qtopia/util/pngscale'
..make[1]: *** [../../bin/pngscale] Error 1
make[1]: Leaving directory `/root/yizhi/qtopia-free-2.2.0/qtopia/util/pngscale'
Failed to make pngscale
    分析:
         这是因为没有安装uuid和Xmu,因为在编译qtopia2.2.0的过程中需要安装工具uuid(Universally Unique Identifier,)和 xmu库文件。
    解决办法:
           
           apt-get install  uuid-dev
           apt-get install libxmu-dev libxmu6

错误三:
      external/clearsilver/cgi/cgi.c:22: fatal error: zlib.h: No such file or directory
       compilation terminated.
      make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_cgi_intermediates/cgi.o] Error 1

解决:
        在ubuntu里,zlib叫zlib1g,相应的zlib-devel叫zlib1g.dev

sudo apt-get install zlib1g-dev

错误四:
      /usr/bin/ld: cannot find -lz
      collect2: ld returned 1 exit status
      make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1

解决方法:
       sudo apt-get install lib32z1-dev

错误五:
     bison -d  -o out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp      frameworks/base/tools/aidl/aidl_language_y.y
     /bin/bash: bison: command not found
     make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp] Error 127

解决方法:
     sudo apt-get install bison

错误六:
      Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.l
      /bin/bash: flex: command not found
      make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127

解决方法:
      sudo apt-get install flex
           
错误七:
      /usr/bin/ld: cannot find -lncurses
      collect2: ld returned 1 exit status
     make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1

解决方法:
     sudo apt-get install lib32ncurses5-dev

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwfgwj.html