QNX独特的工程目录结构

本文介绍了QNX系统下创建arm架构工程的目录结构,包括config、lib、src、test等目录的用途。讲解了手动和自动创建目录的方法,特别是addvariant命令的使用。此外,还详述了Makefile与Makefile.dnm的区别,.use文件的功能以及public文件夹的作用,如存放公共头文件并使用make hinstall命令安装。
摘要由CSDN通过智能技术生成

目录结构实例

以Ubuntu系统下,创建arm架构的demo工程为例。
directory_structure

目录结构说明

  • config 用于存放配置文件
  • lib 目录用于编译动态库和静态库
  • src 目录用于编译可执行文件
  • test 目录用于编译测试程序

以上目录名称均可以自定义,没有特殊规定。

工程目录的创建

手动创建各级目录及文件

可以通过mkdir和touch等命令创建所需要的工程目录和文件。

自动创建各级目录

使用 addvariant 命令可以自动创建出各级目录及所需的编译配置文件。
addvariant是一个shell脚本,它为源代码树创建一个目录结构,并确保这个结构的每一层都包含make实用程序所使用的必要文件。
addvariant 详细使用方法可以参考Qnx官方提供的 用户手册

参数 i 用来指定工程目录的层级,可以使用 addvariant -i OS/CPU/VARIANT xxx xxx xxx 指定工程目录的层级。

LIST=OS (if three levels are specified)
LIST=CPU (if two levels are specified)
LIST=VARIANT (if one level is specified)

以Demo工程为例,Demo工程最深目录为三级:

cd ./Demo
addvariant -i OS src aarch64 o-le
Creating /home/build/workspace/qnx/Demo/src directory...
Creating /home/build/workspace/qnx/Demo/src/aarch64 directory...
Creating /home/build/workspace/qnx/Demo/src/aarch64/o-le directory...

生成结果如下:
在这里插入图片描述

Makefile 与 Makefile.dnm

Makefile 文件可以使用 addvariant 命令自动生成,也可以修改文件,指定编译逻辑。
自动生成内容如下:

# Demo/Makefile
LIST=OS
ifndef QRECURSE
QRECURSE=recurse.mk
ifdef QCONFIG
QRDIR=$(dir $(QCONFIG))
endif
endif
include $(QRDIR)$(QRECURSE)

# Demo/src/Makefile
LIST=CPU
ifndef QRECURSE
QRECURSE=recurse.mk
ifdef QCONFIG
QRDIR=$(dir $(QCONFIG))
endif
endif
include $(QRDIR)$(QRECURSE)

# Demo/src/aarch64/Makefile
LIST=VARIANT
ifndef QRECURSE
QRECURSE=recurse.mk
ifdef QCONFIG
QRDIR=$(dir $(QCONFIG))
endif
endif
include $(QRDIR)$(QRECURSE)

# Demo/src/aarch64/o-le/Makefile
include ..
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值