Qt程序移植至Arm开发板

avatar
作者
筋斗云
阅读量:0

目录

1.工具准备:

系统调试工具SecureCRT

 虚拟机安装linux(Ubuntu)

交叉编译工具链

 ARM 端Qt 环境(Qt-5.7.1)

1) linux processor SD安装 

2)交叉编译工具链配置

2.编译Qt工程: 

2.0 交叉编译 依赖库源码,生成动态链接库

2.1 在Qt工程源码目录下,source命令加载Linux Processor SDK 环境变量 

2.2 qmake 命令生成Makefile 文件

2.3 make 命令编译Qt 工程,生成可在ARM板子上正常运行的ARM 端Qt 程序镜像 

3. 文件传输

3.1 OpenSSH传输

3.2 将链接库文件移动到标准库目录下


1.工具准备:

  • 系统调试工具SecureCRT

        SecureCRT 是一款支持 SSH 协议的终端仿真软件,可通过串口网口对评估板系统信息进行查看、对评估板系统进行调试等。

SecureCRT的安装破解 [详细过程2024]-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/2301_76659937/article/details/137869326

  •  虚拟机安装linux(Ubuntu)

  • 交叉编译工具链

        PS: 需要配置交叉编译工具的环境变量(or找不到的)

Ubuntu安装arm-linux-gcc交叉编译器_gcc-linaro-5.3-2016.05-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/VVBBBBB/article/details/112528998

  •  ARM 端Qt 环境(Qt-5.7.1)

      Qt Arm环境与交叉编译工具一般由所用的arm平台提供,我直接用的TI提供的SDK软件开发包,下载地址:

PROCESSOR-SDK-LINUX-RT-AM57X 04_03_00_05 - TI.com

1) linux processor SD安装 

step1. 在Ubuntu 用户根目录下新建AM57x 工作目录。

mkdir /home/ting/AM57x

 step2. 在AM57x目录下,解压SDK安装包

./ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05-Linux-x86-Install.bin

step3. 进入安装界面,next->finish

PS:在这一步,我一直tar解压失败,排除各种原因后,发现原来是下载构成压缩包受损吧,重新下载安装后,就解决了。(若是通过ftp传输的,要选择bin方式传输)

2)交叉编译工具链配置

 step1.打开“/etc/profile”环境变量配置文件

sudo vim /etc/profile

 step2. 在文件最后添加如下内容,将Linux Processor SDK 开发包中的交叉编译工具链路径加
入系统环境变量中。

export PATH=$PATH:/home/ting/ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/

step3.source命令使能交叉编译工具链

source /etc/profile

 step4. 重启

sudo reboot

重启虚拟机,并重新进入系统。输入“arm”,然后连续双击Tab 键,即可从弹出的编译器列表中看到arm-linux-gnueabihf-gcc-6.2.1,代表交叉编译工具链版本为:gcc-6.2.1。
 

2.编译Qt工程: 

2.0 交叉编译 依赖库源码,生成动态链接库

        我的工程里用到了Opencv库,所以需要准备ARM环境的opencv依赖库。 (当然也需要在qt的.pro配置文件中更改opencv动态库与头文件路径。)

opencv arm 交叉编译-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_43855258/article/details/140808038?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22140808038%22%2C%22source%22%3A%22qq_43855258%22%7D

2.1 在Qt工程源码目录下,source命令加载Linux Processor SDK 环境变量 

source /home/xxx/ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05/linux-dev kit/environment-setup

2.2 qmake 命令生成Makefile 文件

qmake

2.3 make 命令编译Qt 工程,生成可在ARM板子上正常运行的ARM 端Qt 程序镜像 

make

编译成功后,目录下生成工程的可执行文件。 

3. 文件传输

        将工程的可执行文件与工程的依赖库.so文件传输至ARM开发板上。 

PC 机和评估板之间传送文件的常见方式如下:

1) 通过 Linux 系统启动卡、U 盘等存储介质方式拷贝。

(2) 通过 NFSTFTPOpenSSH 等网络方式拷贝。

3.1 OpenSSH传输

        OpenSSH 是SSH(Secure SHell)协议的免费开源实现。SSH 协议族可用来进行远程控制,或在计算机之间传送文件,评估板文件系统默认已支持SSH 库。 

step1. 在Ubuntu 中执行如下命令,查询是否已安装OpenSSH。

ssh -v

step2. 将评估板网口通过网线连接至路由器。在评估板上执行如下命令可自动获取到IP,如下图所示。"-i"用于指定网卡,eth0 为网卡名字,请根据实际情况修改。

udhcpc -i eth1

step3. 查询IP地址

ifconfig

 step4. ping 命令查看pc机与arm板子是否联通

step5. 使用OpenSSH 从PC 机传送文件至评估板(改成你对应的IP地址,与希望传输的路径)

scp test1 root@192.168.1.229:/  // 文件家传输 scp -r test1 root@192.168.1.229:/

  使用OpenSSH 登录至评估板文件系统

sudo ssh root@192.168.1.229 

3.2 将链接库文件移动到标准库目录下

 直接arm环境下运行工程可执行文件,出现以下报错:执行过程找不到动态链接库

 通过执行 ldd main 指令,可以查看当前文件在执行时需要用到的所有动态链接库,以及各个库文件的存储位置: 

ldd 【工程可执行文件名】

 运行由动态链接库生成的可执行文件时,必须确保程序在运行时可以找到这个动态链接库。可将链接库文件移动到标准库目录下(例如 /usr/lib/usr/lib64/lib/lib64);

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!