热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

QT_IMX交叉编译ARM版本

Qt4.8.5为了支持开发板中的触摸屏,在编译Qt之前,要先编译tslib库。rootyechuang:~#sudogeditetcbash.bashrcIMX28环境变量做如下设

Qt4.8.5 为了支持开发板中的触摸屏,在编译 Qt 之前,要先编译 tslib 库。

root@yechuang:~# sudo gedit /etc/bash.bashrc

  1. IMX28环境变量做如下设置:

    export ARCH=arm
    export
    CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-no
    ne-linux-gnueabi-
    export PATH=/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin:$PATH

  2. IMX6环境变量做如下设置:

export ARCH=arm
export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-
export PATH=~/imx6/L3.0.35_4.1.0_130816_source/source/ltib/rpm/BUILD/u-boot-2009.08/tools:$PATH
export PATH=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-multilib-2011.12/fsl-linaro-toolchain/bin:$PATHroot@yechuang:~# source /etc/bash.bashrc

    3. 编译 tslib 库

从https://github.com/kergoth/tslib 下载tslib,解压 切换到/home/yechuang/Qt目录

root@yechuang:/home/yechuang/Qt# unzip tslib-master.zip root@yechuang:/home/yechuang/Qt# sudo chmod 777 tslib-master/ –Rroot@yechuang:/home/yechuang/Qt/tslib-master# ls
acinclude.m4 autogen.sh COPYING m4 plugins tests
AUTHORS ChangeLog etc Makefile.am README TODO
autogen-clean.sh configure.ac INSTALL NEWS src tslib.pc.inroot@yechuang:/home/yechuang/Qt/tslib-master# ./autogen.sh
./autogen.sh: 3: autoreconf: not found

 

错误原因:是在不同版本的 tslib 下执行 autogen.sh 产生。它们产生的原因一样,是
因为没有安装automake 工具,  (ubuntu 10.04)用下面的命令安装就可以了。
 

sudo apt-get install autoconf automake libtool

开始安装:

root@yechuang:/home/yechuang/Qt/tslib-master# ./autogen.sh
开始编译:

root@yechuang:/home/yechuang/Qt/tslib-master# ./configure --host=arm-linux --prefix /home/yechuang/Qt/tslib-instal/

执行安装:

root@yechuang:/home/yechuang/Qt/tslib-master#make install

在tslib-master下看到这几个文件夹,表明已经安装完毕。

root@yechuang:/home/yechuang/Qt/tslib-master# ls ../tslib-instal/
bin etc include lib


4.交叉编译 Qt

4.1. 在/home/yechuang/Qt 目录中,删除之前 x86 版本的 qt4.8.5 安装文件夹 qt-everywhere-opensource-src-4.8.5 并重
新解压:$ tar –zxvf qt-everywhere-opensource-src-4.8.5.tar.gz
进入 qt 的源码中,在进入 mkspecs 文件夹

root@yechuang:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# cd mkspecs/

 

root@yechuang:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5/mkspecs# cp qws/linux-arm-gnueabi-g++ qws/linux-arm-fsl-gnueabi-g++ -r

为了避免破坏 Qt 的源码,我们自己复制一份,然后自此基础上修改;

4.2. 进入 linux-arm-fsl-gnueabi-g++,修改 qmake.conf 文件

root@yechuang:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5/mkspecs# cd qws/linux-arm-fsl-gnueabi-g++/
root@yechuang:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5/mkspecs/qws/linux-arm-fsl-gnueabi-g++# ls
qmake.conf qplatformdefs.h

inux-arm-fsl-gnueabi-g++# gedit qmake.conf

打开源码为:

#
# qmake configuration for building with arm-none-linux-gnueabi-g++
#include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
include(../../common/qws.conf)# modifications to g++.conf
QMAKE_CC = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++# modifications to linux.conf
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_STRIP = arm-none-linux-gnueabi-stripload(qt_config)

跟官方提供的编译参数不同,这里我不敢做大的修改,只是在下面添加一行命令,如果有问题我在修改为提供的编译环境。

image

#
# qmake configuration for building with arm-none-linux-gnueabi-g++
#include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
include(../../common/qws.conf)# modifications to g++.conf
QMAKE_CC = arm-linux-gcc -lts
QMAKE_CXX = arm-linux-g++ -lts
QMAKE_LINK = arm-linux-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-g++ -lts# modifications to linux.conf
QMAKE_AR = arm-linux-ar cqs
QMAKE_OBJCOPY = arm-linux-objcopy
QMAKE_STRIP = arm-linux-stripload(qt_config)

添加行为:

QMAKE_LIBS_THREAD = -lpthread -lts

 

4.3. 配置 Qt :将所给的 run.sh 脚本拷贝到 qt 源码目录,sudo chmod +x run.sh 添加权限,然后$ ./run.sh

root@yechuang:/home/yechuang/Qt# ls
qt-everywhere-opensource-src-4.8.5 run.sh tslib-master
qt-everywhere-opensource-src-4.8.5.tar.gz tslib-instal
root@yechuang:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# sudo chmod +x run.sh

root@yechuang:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# ./run.sh

4.4. make 编译;

root@yechuang:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# make

这个时候还没有生成makefile,不能直接编译,我执行

root@yechuang:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5#./configure

………………

root@yechuang:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# ls
bin configure.exe INSTALL Makefile run.sh
changes-4.8.5 demos LGPL_EXCEPTION.txt mkspecs src
config.profiles doc lib plugins templates
config.status examples LICENSE.FDL projects.pro tools
config.tests imports LICENSE.GPL3 qmake translations
configure include LICENSE.LGPL README util

 

生成makefile,之后在进行make。

root@yechuang:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# make

执行通过。

4.5. 执行安装命令,由于 run.sh 没有指定安装路径,所以默认还是安装在了 usr/local/ Trolltech/
QtEmbedded-4.8.5-arm;

root@yechuang:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# make install

 

4.6. 打开 qt creator


4.7. 选择 Qt 版本,点击添加

gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar  问题???

不能安装。

转:https://www.cnblogs.com/yechuang/p/4518570.html



推荐阅读
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 我们正在使用GNU Make来构建我们的系统,在makefile文件的末尾,我们通过一个名为Makedepends的包含来生成一系列的.d文件。然而,当文件被删除或移动时,依赖关系会中断,我们需要寻找一种方法来优雅地处理这种情况。 ... [详细]
  • 字符、字符串和文本的处理之Char类型
    .NetFramework中处理字符和字符串的主要有以下这么几个类:(1)、System.Char类一基础字符串处理类(2)、System.String类一处理不可变的字符串(一经 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 在Ubuntu 18.04上使用Nginx搭建RTMP流媒体服务器
    本文详细介绍了如何在Ubuntu 18.04上使用Nginx和nginx-rtmp-module模块搭建RTMP流媒体服务器,包括环境搭建、配置文件修改和推流拉流操作。适用于需要搭建流媒体服务器的技术人员。 ... [详细]
  • pypy 真的能让 Python 比 C 还快么?
    作者:肖恩顿来源:游戏不存在最近“pypy为什么能让python比c还快”刷屏了,原文讲的内容偏理论,干货比较少。我们可以再深入一点点,了解pypy的真相。正式开始之前,多唠叨两句 ... [详细]
  • 本文探讨了Flutter和Angular这两个流行框架的主要区别,包括它们的设计理念、适用场景及技术实现。 ... [详细]
  • 解决Xcode PBXcp 错误:找不到文件或目录
    当在Xcode中遇到PBXcp错误提示'No such file or directory'时,通常是由于文件引用问题导致的。本文将介绍两种有效的方法来解决这一常见问题。 ... [详细]
  • 重新审视Kubernetes的必要性
    近期,我注意到不少人误以为我是Kubernetes的推广者。实际上,我只是分享了一些适合用Kubernetes解决的案例。本文旨在探讨Kubernetes的适用场景,并提供一些替代方案。 ... [详细]
  • VMware 15.5.7 中文版激活方法
    本文提供了一种有效的方法来激活 VMware 15.5.7 的中文版本,同时介绍了如何利用最新的激活码进行操作,确保用户能够顺利使用。 ... [详细]
  • C基本语法C程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。对象-对象具有状态和行为 ... [详细]
  • 本文主要解决了在编译CM10.2时出现的关于Samsung Exynos 4 HDMI HAL库中SecHdmiV4L2Utils.cpp文件的编译错误。 ... [详细]
  • 在CentOS 7中部署Nginx并配置SSL证书
    本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
  • 本文探讨了Linux环境下线程私有数据(Thread-Specific Data, TSD)的概念及其重要性,介绍了如何通过TSD技术避免多线程间全局变量冲突的问题,并提供了具体的实现方法和示例代码。 ... [详细]
  • oracle 对硬件环境要求,Oracle 10G数据库软硬件环境的要求 ... [详细]
author-avatar
方雅俊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有