rk3576(4)之buildroot添加package以及Qt程序开机自启

使用环境rk3576+kernel-6.1+buildroot 2024.02 使用的SDK是野火的LubanCat_Linux_Generic_Full_SDK_20250826.tgz

  • 方法1:先将Qt的程序编译好,然后编译好系统,在系统生成的output/rockchip_rk3576_lubancat/target/usr/bin/路径下存放编译好的qt程序
  • 方法2:提供源码目录,让系统编译时顺带编译掉

前提:你已经可以正常的编译qt程序了

方法2的具体实现:

1、假设你的 Qt 应用程序代码位于 qt-app 目录下,创建该目录并进入该目录,

复制代码
mkdir -p package/qt-app
cd package/qt-app

2、在 qt-app 目录下创建 Config.in 文件,定义包的基本信息:

复制代码
# package/qt-app/Config.in
config BR2_PACKAGE_QT_APP
    bool "Qt Application"
    depends on BR2_PACKAGE_QT5BASE
    help
      Build and install a Qt application into the image.

3、创建 qt-app.mk 文件,描述如何构建和安装 Qt 应用程序

复制代码
# package/qt-app/qt-app.mk
QT_APP_SRC = $(BR2_EXTERNAL)/qt-app/src  # 应用程序本地源代码的路径,注意看是否有Makefile

define QT_APP_BUILD_CMDS
	$(MAKE) -C $(QT_APP_SRC) CC=$(TARGET_CC)
endef

define QT_APP_INSTALL_TARGET_CMDS
	$(INSTALL) -D -m 0755 $(QT_APP_SRC)/myqtapp $(TARGET_DIR)/usr/bin/myqtapp
endef


$(eval $(generic-package))

$(TARGET_CC):表示交叉编译器, RK 平台默认使用 buildroot 交叉编译器

4、如果你的 Qt 程序依赖于其他 Qt 模块,确保在 Config.inqt-app.mk 中指定它们。

5、更新 Buildroot 配置

在 package/qt-app/Config.in 文件中定义了 Qt 应用程序后,需要将其添加到 Buildroot 的主配置中:打开 Buildroot 配置文件(package/Config.in),并添加 source 行来包含你的 Qt 应用程序配置。

复制代码
source "package/qt-app/Config.in"

6、 编译 Buildroot 镜像

编译结束后路径就会生成你的自定义qt应用程序了

此时编译好了之后系统目录确实存在了,但是它不会主动运行啊,所以需要添加一个运行脚本,放置在/etc/init.d目录下,开机自启

7、编写启动脚本

在上面使用过的qt-app目录下添加qt-app-init

复制代码
# package/qt-app/qt-app-init
#!/bin/sh

# 启动 Qt 应用程序
chmod 777 /usr/bin/myqtapp
/usr/bin/myqtapp &

8、修改qt-app.mk文件,使程序能够将此文件复制到/etc/init.d目录下

复制代码
# package/qt-app/qt-app.mk
QT_APP_SRC = $(BR2_EXTERNAL)/qt-app/src  # 应用程序本地源代码的路径,注意看是否有Makefile

define QT_APP_BUILD_CMDS
	$(MAKE) -C $(QT_APP_SRC) CC=$(TARGET_CC)
endef

define QT_APP_INSTALL_TARGET_CMDS
	$(INSTALL) -D -m 0755 $(QT_APP_SRC)/myqtapp $(TARGET_DIR)/usr/bin/myqtapp
	$(INSTALL) -D -m 755 $(QT_APP_PKGDIR)/qt-app-init $(TARGET_DIR)/etc/init.d/qt-app-init
endef


$(eval $(generic-package))

9、编译后路径就存在此文件了

相关推荐
Ulyanov1 天前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio的定位革命与技术架构
开发语言·python·qt·系统仿真·雷达电子对抗仿真
Ulyanov1 天前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio入门实战:智能登录系统开发
开发语言·python·qt·雷达电子对抗
czxyvX1 天前
2-Qt信号与槽
c++·qt
Ulyanov1 天前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio环境搭建与核心工作区详解
开发语言·python·qt·系统仿真·雷达电子战系统仿真
我在人间贩卖青春1 天前
Qt 信号与槽的 5 种连接方式
qt·信号槽
曾几何时`1 天前
QT——对象树
开发语言·qt
汪宁宇1 天前
(C++) Qt5.15.12 + GDAL库 等高线生成示例代码
c++·qt·等高线·gdal·等值线·rec533
我在人间贩卖青春1 天前
Qt 元对象系统(MOC)
qt·moc·元对象
特立独行的猫a1 天前
HarmonyOS鸿蒙PC开源QT软件移植:移植开源文本编辑器 NotePad--(Ndd)到鸿蒙 PC实践总结
qt·开源·notepad++·harmonyos·notepad--·鸿蒙pc
Acnidouwo1 天前
QT程序的dpi导致显示异常处理方法
开发语言·qt