应用开发示例
3 Dec 2024
Read time: 2 minute(s)
以 QTLauncher 为例,讲解一下 Luban 的 QT 应用开发方式:
-
搭建 QtCreator,具体步骤可参考 QT Windows IDE。
- 使用 QtCreator 打开 source/artinchip/qtlauncher/QtLauncher.pro
文件即可编译、调试和运行 qtlauncher 应用。
推荐使用 QtCreator 在 Windows 上开发,可以单步调试和模拟。
-
QtCreator 会创建一个 Project 文件来组织代码编译和最终应用程序的生成,Luban 也要依赖该 Project 文件进行交叉编译。
QtLauncher 的源码和 Project(QtLauncher.pro) 均在 source/artinchip/qtlauncher 目录下
编译文件是 Luban 用来描述代码如何编译,文件如何安装,宏定义如何使用的机制,在 source/artinchip/qtlauncher 目录下,qtlauncher 中总共有三个文件:- Config.in:配置是否打开该模块,配置其他宏定义等,宏的定义方式为
BR2_PACKAGE_PACKAGENAME 大写该 Config.in 文件被上一级 Config.in 文件引用
menuconfig BR2_PACKAGE_QTLAUNCHER bool "qtlauncher" default n select BR2_PACKAGE_QT select BR2_PACKAGE_DIRECTFB help ArtInChip's Launcher App Developed with QT. if BR2_PACKAGE_QTLAUNCHER config BR2_QTLAUNCHER_GE_SUPPORT bool "use GE to render image" default y config BR2_QTLAUNCHER_SMALL_MEMORY bool "small memory device" default y endif
- qtlauncher.mk:mk 文件,用于描述如何使用
source/artinchip/qtlauncher
下的源码
QTLAUNCHER_ENABLE_TARBALL = NO //源码方式 QTLAUNCHER_ENABLE_PATCH = NO //是否有 patch QTLAUNCHER_DEPENDENCIES += qt directfb //需要 qt 和 directfb 的支持 QTLAUNCHER_CONF_OPTS = $(QTLAUNCHER_SRCDIR)/QtLauncher.pro //project 文件的名字 ifeq ($(BR2_QTLAUNCHER_GE_SUPPORT),y) export QTLAUNCHER_GE_SUPPORT = YES //Luban 的宏转为 QT 的宏 endif ifeq ($(BR2_QTLAUNCHER_SMALL_MEMORY),y) export QTLAUNCHER_SMALL_MEMORY = YES endif define QTLAUNCHER_INSTALL_TARGET_CMDS、、 mkdir -p $(TARGET_DIR)/usr/local/launcher/ cp -a $(@D)/qtlauncher $(TARGET_DIR)/usr/local/launcher/ //安装编译后的文件 $(INSTALL) -m 0755 -D package/artinchip/qtlauncher/S99qtlauncher \ $(TARGET_DIR)/etc/init.d/S99qtlaunche //安装自动启动脚本 endef $(eval $(qmake-package)) //使用 qmake 编译源码
- S99qtlauncher:qtlauncher 应用的自启动脚本,S99 为启动顺序,属于比较低的等级,S00 为最高等级。
- Config.in:配置是否打开该模块,配置其他宏定义等,宏的定义方式为
BR2_PACKAGE_PACKAGENAME 大写