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

Ubuntu14.04配置gcc4.4.4+Qt4.8.4交叉编译环境的更多相关文章

  1. Caffe+CUDA7.5+CuDNNv3+OpenCV3.0+Ubuntu14.04 配置参考文献 以及 常见编译问题总结

    Caffe+CUDA7.5+CuDNNv3+OpenCV3.0+Ubuntu14.04  配置参考文献 ---- Wang Xiao Warning: Please make sure the cud ...

  2. Caffe+CUDA8.0+CuDNNv5.1+OpenCV3.1+Ubuntu14.04 配置参考文献 以及 常见编译问题总结

    Caffe + CUDA8.0 + CuDNNv5.1 + OpenCV3.1 + Ubuntu14.04  配置参考文献 ---- Wang Xiao  Anhui University  CVPR ...

  3. ubuntu14.04 配置网络

    ubuntu14.04 配置网络的练习 本文参考的资料: https://blog.csdn.net/liu782726344/article/details/52912797. 感谢作者的分享! 打 ...

  4. Ubuntu14.04配置Mono+Jexus

    总所周知,ASP.NET是微软公司的一项技术,是一个网站服务端开发的一种技术,它可以在通过HTTP请求文档时再在Web服务器上动态创建它们,就是所谓动态网站开发,它依赖运行于 IIS 之中的程序 .但 ...

  5. ubuntu14.04 配置中文输入法

    ubuntu14.04自带中文输入法,只要配置就可以了. 1.安装中文支持 System Settings -->  Language Support 点击 install/remove lan ...

  6. ubuntu14.04配置中文latex完美环境(texlive+texmaker+lyx)

    Ubuntu下的文档编辑虽然有libreoffice,但对中文和公式的排版始终不如ms office,因此要想写出高质量的文档,只能靠latex了,现在随着xeCjk的开发,中文文档在ubuntu下的 ...

  7. 64位ubuntu14.04配置adb后提示没有那个文件或目录

    1.配置完adb环境变量后在终端输入adb: ameyume@ameyume-HP-450-Notebook-PC:~$ adb /home/ameyume/adt-bundle-linux-x86_ ...

  8. ubuntu14.04 配置tomcat8

    ubuntu下配置tomcat的过程事实上和windows是差点儿相同的,以下一起来看一下怎样在ubuntu14.04中配置tomcat. 1.下载tomcat 地址:http://tomcat.ap ...

  9. Ubuntu14.04配置VIM与GVIM 高亮、跳转与变量函数列表

    一.环境:刚安装好的Ubuntu14.04,本文只能保证 在Ubuntu下能达到效果. 二.安装GVim. sudo apt-get update sudo apt-get install vim-g ...

随机推荐

  1. SQL SERVER 将表字段值0和1互转的几种方法

    需求: 如果表字段的值为 0 则将其修改为1 ,如果表字段的值为 1 则将其修改为 0. 方法一 end 方法二 ) 方法三 )

  2. 简单三招,设计复杂ERP报表

    报表无疑是ERP系统中用到的最频繁的单据之一.比如每天采购要打印采购明细帐:仓库每天要导出收货或者出货明细:销售每天要打印订单明细等.故报表的设计在ERP系统开发中占据大半江山. 不过笔者在实际工作中 ...

  3. android踩坑记录之view.setVisiblity()

    问题 在某次做悬浮侧边栏的时候,遇到了一个问题:我用windowManager创建的悬浮侧边栏.点击中心view展开菜单,再次点击则隐藏菜单,如此简单的一个需求,却遇到了奇怪的问题,我没有对view的 ...

  4. 自己来实现一套IOC注解框架

    我们自己来实现一套IOC注解框架吧,采用的方式反射加注解和Xutils类似,但我们尽量不写那么麻烦,也不打算采用动态代理,我们扩展一个检测网络的注解,比如没网的时候我们不去执行方法而是给予没有网络的提 ...

  5. aop 拦截含有特定注解的类

    1.功能点:使用aop拦截含有自定义注解的类 1.自定义注解 package com.zhuanche.common.dingdingsync; import java.lang.annotation ...

  6. 用JS实现控制浏览器F12与右键功能

    本文出至:新太潮流网络博客 用JS实现控制浏览器F12与右键功能,防止恶意窃取代码,或其他直接复制进去就好 //禁用右键 document.oncontextmenu = function () { ...

  7. Microsoft SQL 关系数据库的使用指南

    Microsoft SQL 关系数据库的使用指南 https://docs.microsoft.com/zh-cn/sql/relational-databases/database-features

  8. T-SQL检查停止的复制作业代理,并启动 (转载)

    有时候搭建的复制在作业比较多的时候,会因为某些情况导致代理停止或出错,如果分发代理时间停止稍微过长可能导致复制延期,从而需要从新初始化复制,带来问题.因此我写了一个脚本定期检查处于停止状态的分发代理, ...

  9. QtDesigner与程序设计模式

    在我的上一篇博文中提到我认识到UI设计的重要性.在这里将解析一下使用QtDesigner设计UI进行程序GUI的设计,QtDesigner的.ui文件可以转化为许多的程序代码,比如我知道的就有:c++ ...

  10. 小程序码B接口生成出错:场景内容包含非法字符

    由于包含了非法字符,微信返回的字节不超过100字符,但是没有包含提示内容,因此很难识别发现问题所在