zoukankan      html  css  js  c++  java
  • Ubuntu14.04配置gcc4.4.4+Qt4.8.4交叉编译环境

    Ubuntu14.04配置gcc4.4.4+Qt4.8.4交叉编译环境, Ubuntu16.04也类似,

    安装32位程序运行支持

    sudo apt-get install lib32stdc++6 lib32z1 lib32ncurses5 lib32bz2-1.0
    
    • 可能报错:

      lib32stdc++6 : 依赖: lib32gcc1 (>= 1:4.1.1) 但是它将不会被安装 E: 无法修正错误
      
      • 解决方案:
        sudo aptitude -f install lib32stdc++6
        
        • 若没有aptitude需先安装该软件

        • 在提示中第一处选n, 第二处选y, 如下:

          edu@edu:/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin$ sudo aptitude -f install lib32stdc++6
          下列“新”软件包将被安装。         
            lib32gcc1{ab} lib32stdc++6 
          0 个软件包被升级,新安装 2 个, 0 个将被删除, 同时 385 个将不升级。
          需要获取 310 kB 的存档。 解包后将要使用 1,338 kB。
          下列软件包存在未满足的依赖关系:
           lib32gcc1 : 依赖: gcc-4.9-base (= 4.9-20140406-0ubuntu1) 但是 4.9.3-0ubuntu4 已安装。
          下列动作将解决这些依赖关系:
          
               保持 下列软件包于其当前版本:
          1)     lib32gcc1 [未安装的]       
          2)     lib32stdc++6 [未安装的]    
          
          
          
          是否接受该解决方案?[Y/n/q/?] n
          
          下列动作将解决这些依赖关系:
          
               降级 下列软件包:                                                      
          1)     gcc-4.9-base [4.9.3-0ubuntu4 (now) -> 4.9-20140406-0ubuntu1 (trusty)]
          2)     libgcc1 [1:4.9.3-0ubuntu4 (now) -> 1:4.9-20140406-0ubuntu1 (trusty)] 
          
          是否接受该解决方案?[Y/n/q/?] y
          下列软件包将被“降级”:
            gcc-4.9-base libgcc1 
          下列“新”软件包将被安装。
            lib32gcc1{a} lib32stdc++6 
          0 个软件包被升级,新安装 2 个, 2 个被降级, 0 个将被删除, 同时 385 个将不升级。
          需要获取 363 kB 的存档。 解包后将要使用 1,328 kB。
          您要继续吗?[Y/n/?] y
          

    安装arm编译gcc

    • 安装
    cd /opt/
    sudo tar -zxvf gcc-4.4.4-glibc-2.11.1-multilib-1.0.tar.gz
    
    • 测试是否安装成功
      • 在目录/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin#下,测试是否安装成功,成功后效果如图。执行命令: ./arm-none-linux-gnueabi-gcc -v
        edu@edu:/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin$ ./arm-none-linux-gnueabi-gcc -v
        Using built-in specs.
        Target: arm-fsl-linux-gnueabi
        Configured with: /work/arm-toolchains/tmp/src/gcc-4.4.4/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-fsl-linux-gnueabi --prefix=/work/     arm_fsl_gcc_4.4.4_multilib --with-sysroot=/work/arm_fsl_gcc_4.4.4_multilib/arm-fsl-linux-gnueabi/multi-libs --enable-languages=c,c++ --with-pkgversion=4.4.4_09.06.2010     --enable-__cxa_atexit --disable-libmudflap --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-gmp=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/   build/static --with-mpfr=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --with-ppl=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --with-cloog=/work/   arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --enable-threads=posix --enable-target-optspace --with-local-prefix=/work/arm_fsl_gcc_4.4.4_multilib/arm-fsl-linux-gnueabi/    multi-libs --disable-nls --enable-symvers=gnu --enable-c99 --enable-long-long --enable-multilib --with-system-zlib --enable-lto
        Thread model: posix
        gcc version 4.4.4 (4.4.4_09.06.2010) 
        
    • 到这里交叉编译gcc已配置完, 后面根据需要进行环境变量的设置, 一般采用如下语句:
      export PATH=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin:$PATH
      

    编译安装qt4.8.4

    • 生成makefile

      ./configure -prefix /usr/local/Qt-4.8.4 -embedded arm -xplatform /qws/ linux-arm-g++ -depths 16,24,32 -little-endian -no-mmx -no-3dnow -no-sse   -no-sse2 -no-glib -no-cups -no-largefile -no-accessibility -no-openssl  -no-gtkstyle -qt-freetype -qt-mouse-pc -qt-mouse-linuxtp -qt-mouse-linuxinput  -plugin-mouse-pc -fast -qt-gfx-transformed -opensource -confirm-license
      
    • make

      • make过程较长, 这里启用的6核编译, 大约用了半个小时编译完成.
        make -j6
        
      • 可能错误
        • 提示类似如下信息
          make[1]: arm-linux-g++:命令未找到
          make[1]: *** [.obj/release-shared-emb-arm/compress.o] 错误 2
          
          • 将./configure 参数-xplatform /qws/linux-arm-g++修改为-xplatform /qws/linux-arm-gnueabi-g++即可
        • 提升如下信息
          libz.so.1: cannot open shared object file: No such file or directory
          
          安装lib32z1或lib32stdc++6后尝试
          sudo apt-get install lib32z1
          
    • make install

      sudo make install
      
    • 根据环境需要设置环境变量

      export ARMQTDIR=/usr/local/Qt-4.8.4
      export PATH=$ARMQTDIR/bin:$PATH
      export MANPATH=$ARMQTDIR/man:$MANPATH
      export LD_LIBRARY_PATH=$ARMQTDIR/lib:$LD_LIBRARY_PATH
      
    • 检查Qt安装

      qmake -v
      

      提示如下信息, 表示安装成功

      QMake version 2.01a
      Using Qt version 4.8.4 in /usr/local/Qt-4.8.4/lib
      
  • 相关阅读:
    FZU 2150 Fire Game
    POJ 3414 Pots
    POJ 3087 Shuffle'm Up
    POJ 3126 Prime Path
    POJ 1426 Find The Multiple
    POJ 3278 Catch That Cow
    字符数组
    HDU 1238 Substing
    欧几里德和扩展欧几里德详解 以及例题CodeForces 7C
    Codeforces 591B Rebranding
  • 原文地址:https://www.cnblogs.com/linkyip/p/10760038.html
Copyright © 2011-2022 走看看