QT的移植
本质上都是编译器,而gcc是linux系统用来将代码编译成可执行程序的手段。编译出来的是适用于linux系统的可执行二进制文件。所以用gcc编译出来的可执行程序只有在linux系统下面可以运行。
arm-linux-gcc告诉编译器,我编写的环境是linux,但是我希望生成的可执行程序是在arm上面跑的。这就是交叉编译。编写环境和执行环境分离的一种手段。
QT可以在LInux,android,x86和arm下跑起来,所以是十分强大的
Qt是开源的,所以可以从官网下载Qt源代码,使用交叉编译工具编译成目标平台(arm-linux)的库文件,将编译生成的库文件拷贝到开发板,并设置环境变量即可。
移植Qt和移植其他的Linux工具的方法没有区别
从ARM官网下载最新版交叉编译工具。
Arm GNU Toolchain | GNU Arm Embedded Toolchain Downloads – Arm Developer
gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
Qt程序的移植
配置交叉编译环境
准备交叉编译工具 ------ 5.4.0
准备工作:安装gcc,g++和make:
sudo apt install build-essential # GNU 编译器
安装交叉编译链
sudo apt-get install gcc-arm-linux-gnueabi
方法一(推荐) 1.使用管理员登录,将arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz压缩包传入Linux内,进行解压。
用分享文件的分享的方式导进来看看
/mnt/hgfs
cp arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz
就可以看到分享进来的文件夹了
注意要用xvf解压
tar xvf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz
然后终端输入:
arm-linux-gcc -v
如果报错,则需要安装32位依赖库,
sudo apt-get install lib32z1
配置QQt-embeddedt的环境(这个会比较久)
mirrors.tuna.tsinghua.edu.cn/qt/archive/…
官网(推荐清华镜像)
linux安装qt4.7.3
1、获得文件
qt-everywhere-opensource-src-4.7.3.tar.gz
2、解压缩
sudo bzip2 -d qt-embedded-linux-opensource-src-4.5.1.tar.bz2
tar xvf qt-x11-opensource-src-4.7.3.tar.gz
3、生成 makefile 文件
cd qt-x11-opensource-src-4.7.3
./configure
这个时候他会问你:“Which edition of Qt do you want to use?” 然后给你两个类型供选择:
Type ‘‘c’’ if you want to use the Commercial Edition.
Type ‘‘o’’ if you want to use the Open Source Edition.
第一个是商业版,第二个是自由版。 选择 ‘‘o’’(Qt/嵌入式自由版是Qt为了开发自由软件提供的嵌入式版本)。 这时候,出现许可界面。 选择 ‘‘yes’’ 接受许可协议。 开始生成 makefile 文件。这个大约需要 5 -10 分钟的时间。 4、Qt 编译
make
这个过程时间比较长,需要两个小时左右。 5、Qt 安装 运行
make install
默认安装至 /usr/local/Trolltech/Qt-4.7.3 大约 5 - 10 分钟。正常结束,安装完毕。 运行 /usr/local/Trolltech/Qt-4.7.3/bin/designer ,看见 qt 启动,也就是说 qt 安装好了。
测试qmake是否可用
起别名
在
~/.bashrc
文件中添加一行(gedit)
alias armqmake='/usr/local/Qt-Embedded-5.7.0/bin/qmake'
重启终端支持armqmake命令
移植Qt程序到开发板
1.将工程源代码目录拷贝到Ubuntu
2.在该目录下执行
armqmake
make
3.将生成的程序传送到开发板运行
注:如果Ubuntu版本高于16.04,需要执行以下命令
sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4
遇到的问题
make的时候遇到的