移植Qt4.8.7到ARM40-A5

移植Qt4.8.7到ARM40-A5

主机平台:Ubuntu 16.04 LTS(x64)

目标平台:ARM40-A5

Qt版本:Qt4.8.7

ARM GCC编译工具链:

arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

----------## Qt移植步骤 ##

1、了解Ubuntu,启动Terminal

2、下载和安装ARM GCC编译工具链

3、下载和安装tslib 和Qt

4、配置qt-creator

5、编写hello world 示例程序

6、移植Qt到ARM40-A5


一、启动Ubuntu

Ubuntu默认已安装完成,这里不再演示如何安装Ubuntu。如需要安装Ubuntu,请出门左转,自行谷歌

1.1、启动Ubuntu后确认你的系统版本


1.2、按下Ctrl + Alt + T 启动terminal(终端)

启用root权限将当前账户ubt1604加入到sudo 的列表中

复制代码
$  su -  			      ;切换到root账户,输入root的密码
$  vim /etc/sudoers      ;编辑sudoers 文件
$  exit   				  ;退出root

按下"A",打开vim文本编辑模式,添加

"ubt1604 ALL=(ALL)NOPASSWD:ALL"

按下Esc ,退出vim文本编辑模式,输入" :wq! ",保存退出

ubt1604已获得root权限



1.3、下载和安装ARM GCC编译工具链

第三方网站下载(推荐):http://www.veryarm.com/arm-none-linux-gnueabi-gcc

官方网站下载:http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/

在当前账户的主目录下建立目录qtsoft,将下载到的arm gcc编译工具链存放在qtsoft目录中

复制代码
$ mkdir  qtsoft  				;创建qtsoft目录
$ ls 			 				;查看qtsoft目录是否创建 
$ cd  qtsoft 	 				;切换到qtsoft目录中
$ cp ~/arm-2014.05*  ./		 ;拷贝arm gcc编译工具链到qtsoft目录中
$ ls 			 				;查看qtsoft目录下已有文件 

将arm gcc编译工具链解压到/opt目录下

复制代码
$  sudo tar xjvf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C  /opt 
 
$  ls  /opt 					;查看是否解压到/opt目录下


添加arm-2014.05编译器的路径到当前账户ubt1604的环境变量中

进入到/opt/arm-2014.05/bin目录下,可以看到arm gcc 的编译器文件列表

回到当前账户目录下,编辑 .bashrc 文件

在文件的最后添加" export PATH=/opt/arm-2014.05/bin:$PATH ",保存退出

使其环境变量生效,查看arm gcc 的编译器版本号为4.8.3

复制代码
$ cd ~				 				 ;当前账户主目录
$ vim .bashrc							;编辑文件
$ source .bashrc						;使环境变量生效
$ echo $PATH							;查看环境变量
$ arm-none-linux-gnueabi-gcc -v		;查看arm gcc 版本

1.4、下载和安装tslib 和 Qt

tslib官方下载(需要翻墙):https://github.com/kergoth/tslib

如果没有VPN,请出门左转,自行谷歌tslib,这里不再提供第三方的下载链接

复制代码
$ git clone https://github.com/kergoth/tslib.git    ;下载tslib

如果提示没有安装git ,请自行安装git

复制代码
$ sudo apt-get install git

编译tslib之前,要先安装automake、libtool 两个工具;

并在/opt目录下新建tslib目录;

切换到qtsoft目录下的tslib目录并查看

复制代码
$ sudo apt-get  install  automake  libtool
$ sudo mkdir /opt/tslib
$ cd  ~/qtsoft/tslib
$ ls

执行如下步骤,编译安装tslib

复制代码
$  ./autogen.sh
$  ./configure CC=arm-none-linux-gnueabi-gcc \
                        CXX=arm-none-linux-gnueabi-g++ \
                        --prefix=/opt/tslib \
                        --host=arm-none-linux-gnueabi \
                        ac_cv_func_malloc_0_nonnull=yes
 $ make&&sudo make install

注:如果报错误,大部分都是arm gcc的路径不正确,请仔细检查;

下面的网址有详细的错误处理方法,经过试验,真实可用

请参考http://blog.csdn.net/flfihpv259/article/details/51496959

进入下一步之前,先将/opt/tslib/etc/ts.conf文件第二行"#module_raw input"注释去掉,变为"module_raw input",注意一定要顶格,至此tslib 安装完毕。


Qt4.8.7官方下载链接:http://download.qt.io/official_releases/qt/4.8/4.8.7/

将下载的Qt4.8.7复制到qtsoft目录下,如下图所示;

在终端中输入 ls 命令,也可以看得到,如下图所示:

准备编译安装Qt4.8.7

回到qtsoft 目录下,将qt进行解压,查看qt-everywhere-opensource-src-4.8.7目录

的文件

复制代码
$ cd ~/qtsoft
$ tar xzvf qt-everywhere-opensource-src-4.8.7.tar.gz 
$ ls 
$ cd  qt-everywhere-opensource-src-4.8.7
$ ls 

编辑qmake.conf文件

复制代码
$  vim  mkspecs/qws/linux-arm-g++/qmake.conf

添加以下内容,注意arm gcc编译器的路径;编辑结束,保存并退出vim

复制代码
#
# qmake configuration for building with arm-linux-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                = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-gcc -lts
QMAKE_CXX               = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK              = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK_SHLIB        = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-g++ -lts

# modifications to linux.conf
QMAKE_AR                = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-objcopy
QMAKE_STRIP             = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-strip

load(qt_config)
~                                                                               
~                 

开始编译Qt4.8.7,首先在/opt目录下创建qte4.8.7目录,然后执行以下操作

复制代码
$ sudo mkdir /opt/qte4.8.7
$ ls /opt
$ sudo ./configure  \
			--prefix=/opt/qte4.8.7 \
			-opensource \
			-release \
			-static \
			-Declarative \
			-fast \
			-no-largefile \
			-qt-sql-sqlite \
			-qt3support \
			-exceptions \
			-xmlpatterns \
			-no-script \
			-no-scripttools \
			-no-glib \
			-no-phonon \
			-svg \
			-no-webkit \
			-qt-zlib \
			-qt-libtiff \
			-qt-libpng \
			-qt-libjpeg \
			-make libs \
			-nomake tools \
			-nomake examples \
			-nomake docs \
			-nomake demos \
			-no-nis \
			-no-cups \
			-no-iconv \
			-no-dbus \
			-xplatform qws/linux-arm-g++ \
			-embedded arm \
			-little-endian \
			-qt-freetype \
			-depths 16,24,32 \
			-qt-gfx-linuxfb \
			-no-gfx-transformed \
			-no-gfx-multiscreen \
			-no-gfx-vnc \
			-no-gfx-qvfb \
			-qt-kbd-linuxinput \
			-qt-kbd-tty  \
			-no-kbd-qvfb \
			-armfpa \
			-optimized-qmake  \
			-no-mouse-qvfb \
			-qt-mouse-linuxtp \
			-qt-mouse-tslib \
			-DQT_QLOCALE_USES_FCVT \
			-DQT_NO_QWS_CURSOR \
			-pch \
			-I/opt/tslib/include \
			-L/opt/tslib/lib  \
			-confirm-license   
$  sudo make -j 4

编译的过程中,如果有报错误,请检查你的arm gcc 的安装路径是否正确,具体的请谷歌。 -j 4 : 使用4个CPU核进行并行编译,具体的还是要看主机的CPU的核心数;默认make 时,只使用1个CPU核心,单核心CPU编译Qt时间好久的,一部电影的时间过去了。。。

编译完成后,进行安装Qt4.8.7 ,查看qmake版本

复制代码
$ sudo make install 
$ ls /opt/qte4.8.7/  
$  qmake  -v 

根据报错分析:

qtchooser默认选择路径中没有指向qmake路径,编辑下面的这个文件

复制代码
$ sudo vim  /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
$ qmake  -v

将下图第一句改成qmake的路径:/opt/qte4.8.7/bin

更改后如下图所示

查看qmake版本

回到当前账户的主目录下,将下面的文本内容添加到 .bashrc文件的末尾。

保存退出,并使其环境变量生效;Qt4.8.7已经安装结束了

复制代码
$ cd ~
$ vim .bashrc
$ source .bashrc 

export PATH=$PATH:/opt/qte4.8.7/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/qte4.8.7/lib

相关推荐
davenian6 小时前
< 自用文 OS 有关 > (续)发现正在被攻击 后的自救 Fail2ban + IPset + UFW 工作流程详解
ubuntu·bash·fail2ban·ipset
阿贤Linux7 小时前
设置网卡名称为传统命名方式
linux·ubuntu
新手村领路人8 小时前
QT6 配置 Copilot插件
qt·ai编程
GoodG_study8 小时前
windows通过xrdp远程连接Ubuntu黑屏问题解决
linux·ubuntu
会飞的胖达喵9 小时前
Qt Model/View/Delegate 架构详解
开发语言·qt·架构
edjxj9 小时前
Qt添加图标资源
开发语言·数据库·qt
一张假钞9 小时前
Windows 11主机Ubuntu 24.04虚机共享目录权限问题
linux·运维·ubuntu
GoodG_study9 小时前
一文教您解决win11运行Ubuntu,wsl相关命令出现系统找不到指定文件的错误提示
linux·ubuntu·wsl