当前位置: 首页 > java >正文

Linux 编译 Android 版 QGroundControl 软件并运行到手机上

Linux 编译 Android 版 QGroundControl 软件并运行到手机上

  • 环境说明
  • 操作步骤
      • 一、参考上一篇文章在电脑端把环境搭建好
      • 二、配置 Qt Creator 的 Android 环境

环境说明

电脑系统 Ubuntu 22.04
qgroundcontrol master 分支
Qt 6.8.3

操作步骤

一、参考上一篇文章在电脑端把环境搭建好

Linux 编译电脑端 QGroundControl 软件

二、配置 Qt Creator 的 Android 环境

1.运行 Qt Creator 软件,点击上方菜单栏中的「工具」菜单 -> 「外部」-> 「配置」
2. 在新弹出的菜单对话框中,左侧选择「SDKs」选项,右侧会展示 Android 环境的相关配置,总的来说,就是配置 JDK、SDK、OpenSSL (假如你的电脑中已经安装了 AndroidStudio,AndroidStudio 自身就已经包含了 JDK、SDK 这些环境,但我的建议是还是新建一个单独的目录,来存放 Qt 需要的环境配置文件)
3. 配置 JDK:

  • 前往 Oracle官网下载 JDK 文件
  • 解压 JDK 压缩文件,可以解压到任何文件目录,相关命令 tar -zxvf jdk-24_linux-x64_bin.tar.gz
  • 打开 bashrc 文件,添加环境变量,相关命令 vim ~/.bashrc
  • 在 vim 编辑器中,在文件的最后写入 export JAVA_HOME=/home/ctj/jdk1.8 export PATH=$JAVA_HOME/bin:$PATH (vim 编辑器的简单操作指令:i 是对文件进行编辑,Esc 是退出编辑 :wq 是写入保存退出)
  • 执行 source ~/.bashrc 命令,让文件的修改立刻生效
  • 输入 java -version 验证 Java 是否安装成功
    参考文章Ubuntu配置Java环境的方法
  1. JDK 在电脑中配置好后,在 Qt 的 Android 环境配置界面中,「JDK 位置项」选择刚刚解压的目录就可以,比如 /home/ubuntu/Java/jdk-24.0.2
  2. Qt 的「Android SDK的路径」项选择一个新建的空目录,点击「设置SDK」按钮,让 Qt 自己去下载所需要的 SDK 内容,如果中途有日志提示下载失败,就等下载完成后再点击一次「设置SDK」按钮。
  3. Qt 的 「OpenSSL 二进制位置」这里也一样,选择一个新建的空目录,点击「下载 OpenSSL」按钮,让 Qt 自己下载。(如果提示“所选的用于下载 openssl 的路径(/home/ubuntu/android)已存在并且非空。请选择其它空路径“,就在选择的 openssl 路径后面输入一个新的文件名,让 Qt 去创建该文件夹)
  4. 这样 3 个所需的依赖就都完成了,点击 Qt 上方菜单栏中的「文件」-> 「打开文件或项目」-> 项目的 CMakeLists.txt 文件,导入 QGroundControl 项目
  5. 左下方的部署按钮,选择构建套件(安卓),点击编译或者运行,应该就可以成功安装到手机上了

参考文章:搭建Qt5.15.2 for Android环境编译QGC4.4(详)
文章使用的版本虽然有些低,但是很多步骤还是通的,值得借鉴参考

http://www.xdnf.cn/news/19984.html

相关文章:

  • 东土正创AI交通服务器再获北京市批量应用订单
  • Agent Prompt工程:如何让智能体更“听话”?(实践指南)
  • 20250904 10:45_排查10.1.3.35新QMS系统RMAN备份失败问题(优化脚本里的环境配置,增加了check_oracle_env 函数)
  • openai-python v1.104.2版本发布:修复Web搜索工具类型别名问题
  • uni-app iOS 上架常见问题与解决方案,实战经验全解析
  • 2025数学建模国赛高教社杯C题思路代码文章助攻
  • Java对接Kafka的三国演义:三大主流客户端全景评测
  • 25高教社杯数模国赛【C题国一学长思路+问题分析】第二弹
  • 以数据与自动化驱动实验室变革:智能化管理整体规划
  • 救命!Shell用了100次还不懂底层?爆肝300行代码从0造“壳”,fork/exec/重定向全扒光,Linux系统编程直接开挂!
  • 【面试题】Prompt是如何生成的,优化目标是什么,任务是什么?
  • 服务器监控不用盯屏幕:Ward+Cpolar让异常告警主动找到你
  • Cursor 辅助开发:快速搭建 Flask + Vue 全栈 Demo 的实战记录
  • C4.5决策树(信息增益率)、CART决策树(基尼指数)、CART回归树、决策树剪枝
  • 《ConfigMap热更新失效的深度解剖与重构实践》
  • 题解 洛谷P13778 「o.OI R2」=+#-
  • STM32 - Embedded IDE - GCC - 如何将编译得到的.bin固件添加CRC32校验码
  • 数智管理学(四十八)
  • CodeBuddy+Lucene 探索与实践日志:记录我如何从零构建桌面搜索引擎
  • 前端开发的“三剑客”—— ​​HTML、CSS、JavaScript​​
  • LeetCode 524.通过删除字母匹配到字典里最长单词
  • More Effective C++ 条款25:将构造函数和非成员函数虚拟化
  • upload-labs通关笔记-第17关文件上传之二次渲染png格式(PHP脚本法)
  • 使用Java定时爬取CSDN博客并自动邮件推送
  • linux---------------网络基础概念
  • 不同数据类型for循环
  • 软件测试基础知识(数据库篇)
  • 轻松Linux-6.基础IO
  • redis中查询key是否存在的命令
  • shell内置命令