QT交叉编译 ARM 版本

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

[email protected]:~# 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:$PATH

[email protected]:~# source /etc/bash.bashrc

3. 编译 tslib 库

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

[email protected]:/home/yechuang/Qt# unzip tslib-master.zip 

[email protected]:/home/yechuang/Qt# sudo chmod 777 tslib-master/ –R

[email protected]:/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.in

[email protected]:/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
开始安装:

[email protected]:/home/yechuang/Qt/tslib-master# ./autogen.sh
开始编译:

[email protected]:/home/yechuang/Qt/tslib-master# ./configure --host=arm-linux --prefix /home/yechuang/Qt/tslib-instal/

执行安装:

[email protected]:/home/yechuang/Qt/tslib-master#make install

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

[email protected]:/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 文件夹

[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# cd mkspecs/

[email protected]:/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 文件

[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5/mkspecs# cd qws/linux-arm-fsl-gnueabi-g++/
[email protected]:/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-strip

load(qt_config)

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

添加行为:

QMAKE_LIBS_THREAD = -lpthread -lts

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

[email protected]:/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
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# sudo chmod +x run.sh
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# ./run.sh
4.4. make 编译;
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# make
这个时候还没有生成makefile,不能直接编译,我执行
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5#./configure
………………
[email protected]:/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。
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# make
执行通过。

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

[email protected]:/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  问题???

不能安装。

时间: 2024-10-06 17:54:51

QT交叉编译 ARM 版本的相关文章

Qt Creator 添加arm版本的qmake时的问题

  好吧,吐血搞了三天,终于把这个问题解决了,菜鸟上不起呀! 问题:当QT Creator安装好后,它的qmake只能生产在X86下的Makefile,这方便我们在电脑上调试,看效果.但当我们需要将编译好的QT程序下载到开发板上运行时,这个生成的目标文件是无法在板子上执行的,因此我们需要添加arm版本的qmake,但当我用FriendlyARM提供的 target-qte-4.8.5-to-hostpc.tgz  解压到根目录下时,得到的qmake居然不是X86下可执行的程序(这应该是arm架构

linux cross toolsChain 交叉编译 ARM(转)

转载请注明出处:http://blog.csdn.net/mybelief321/article/details/9076583 安装环境 Linux版本:Ubuntu 12.04    内核版本:Linux 3.5.0   交叉编译器版本:arm-linux-gcc-4.4.3 这个版本的交叉编译器我已经上传到了资源上,可以随便下载,点此下载 安装前的絮叨 首先简单介绍一下,所谓的搭建交叉编译环境,即安装.配置交叉编译工具链.在该环境下编译出嵌入式Linux系统所需的操作系统.应用程序等,然后

Qt Creator的安装与Qt交叉编译的配置

Qt Creator 的安装 到Qt官网下载Qt Creator  https://www.qt.io/download-open-source/ 其它旧版本点击Achieve连接下载 或登录http://download.qt.io/下载 下载前记得查看自己的linux系统情况 uname-a 我的是 1. i386 适用于intel和AMD所有32位的cpu.以及via采用X86架构的32位的cpu. 2. X86_64 适用于intel的Core 2 Duo, Centrino Core

GEOS/GDAL 交叉编译ARM64-linux版本

目录 安装编译环境 编译PROJ.4 编译GEOS 编译GDAL 因为试用华为云ARM64服务器的时候,在云服务器上编译GDAL很长时间也没有编译完,所以先交叉编译适合版本的GDAL丢上去做测试. 以下都是在CentOS 7 x86_64 环境下进行的,Linux内核版本3.10. 安装编译环境 1.下载安装编译器 # 这里可以去 https://developer.arm.com/tools-and-software/ 网站找 # 注意:要安装arm-none-linux-gnueabi-gc

ARM版本及系列

1 概述 ARM是Advanced RISC Machine的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能.廉价.耗能低的RISC (精简指令集)处理器,只设计芯片而不生产.它提供ARM技术知识产权(IP),将技术授权给世界上许多著名的半导体.软件和OEM厂商,并提供服务. ARM版本分为两类,内核版本,处理器版本.内核版本,也即ARM架构,如ARMv1.ARMv5.ARMv7.ARMv8等.处理器版本,也即ARM处理器,如ARM1.ARM9.ARM11.ARM Cortex-A

关于Qt移植arm上点击没反应,箭头也不动的问题

关于Qt的移植,以前移植过一次S3C2440的.现在这平台是AT91SAM9X35的.不过移植过程都一样,只不过遇到了以前没遇到的事情,在此记录下来 平台:AT91SAM9X35 环境:linux-2.6.39 移植Qt版本:4.6.4 交叉编译器:arm-linux-gcc 移植过程遇到的问题:运行Qt程序,点击屏幕没有反应.鼠标也没动. (1)问题分析:交叉编译器头文件EV_VERSION宏与所移植的内核版本的EV_VERSION宏不一样. 解决途径: 查看下EV_VERSION的定义. 交

Qt 5.7 版本+2013VS环境配置

原本是使用MSVC5.5.1的版本,碍于习惯,之前一直使用creator,后面才转向VS,因为它的调试实在是太棒了,小程序还是creator调试(比如抽出大程序中的小模块之类的) 不知道是版本问题还是我自己笔记本问题,5.5.1这个在添加的资源中使用图片一直路径失败,4.6又能成功调用到资源,在VS中也可以,然后手残卸载了MSVC5.5.1,同理,原本配置好在2013VS中Qt也随之毁了.接下来我要向大家说下怎么配置5.7+MSVC2013(2015一样的) 这里下载qt5.7 windows6

Linux下快速静态编译Qt以及Qt动态/静态版本共存

Qt下静态编译Qt,根据我的经验,如果按照Windows下那种直接拿官方sdk安装之后的文件来编译是行不通的,需要直接下载Qt的source包,目前诺基亚的源码叫做qt-everywhere-opensource-src的tar包,到网上一查,乖乖,大部分人编译这个包居然花费了12-13个小时!但是,根据我在Windows下静态编译Qt的经验,其实这之中很多东西都是可以不用编译的,最终我大约用了40分钟编译完成了全部内容.如果你直接使用官方的sdk安装,那么你就已经有了一个动态库,现在你又通过源

怎么给qt程序添加版本信息

windows下的可执行文件的属性中有版本这个信息,她含有版本信息,描述,版权等等.对于qt的程序,要含有这样的信息,该怎么办呢?那就如下操作吧:新建***.rc文件,在rc文件填入下的信息 #if defined(UNDER_CE)#include <winbase.h>#else#include <winver.h>#endif VS_VERSION_INFO VERSIONINFO    FILEVERSION 1,0,0,0    PRODUCTVERSION 1,0,0,