Edit online

应用开发示例

3 Dec 2024
Read time: 2 minute(s)
以 QTLauncher 为例,讲解一下 Luban 的 QT 应用开发方式:
  1. 搭建 QtCreator,具体步骤可参考 QT Windows IDE

  2. 使用 QtCreator 打开 source/artinchip/qtlauncher/QtLauncher.pro 文件即可编译、调试和运行 qtlauncher 应用。

    推荐使用 QtCreator 在 Windows 上开发,可以单步调试和模拟。

  3. 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 为最高等级。