Qcom_hexagon编译自动获取目录和特定文件的方法

一,简介

本文主要介绍,如何在高通hexagon ide中的hexagon.min中添加获取目录和.c文件的方法,供参考。
在这里插入图片描述

二,具体命令

OBJ_PATH := ./algo_lib

INCLUDE_PATH := $(shell find $(OBJ_PATH ) -type d)
SRC_C_FILE := $(foreach dir, $(INCLUDE_PATH ), $(wildcard $(dir)/*.c))
#add source c files
capi_awinic_iv_sp_C_SRCS += $(basename $(SRC_C_FILE))
#add the path of .h file
INCDIRS += $(INCLUDE_PATH )

三,命令补充介绍

find命令:

详见链接:《linux常用命令

foreach命令:

$(foreach <var>,<list>,<text>)

含义:这个函数的意思是,把参数;中的单词逐一取出放到参数;所指定的变量中,然后再执行< text>;所包含的表达式。每一次 ;会返回一个字符串,循环过程中, ;的所返回的每个字符串会以空格分隔,最后当整个循环结束时, ;所返回的每个字符串所组成的整个字符串(以空格分隔)将会是foreach函数的返回值。

所以,;最好是一个变量名,;可以是一个表达式,而 ;中一般会使用 ;这个参数来依次枚举;中的单词。举个例子:

names := a b c d

files := $(foreach n,$(names),$(n).o)

上面的例子中, ( n a m e ) 中的单词会被挨个取出,并存到变量“ n ”中,“ (name)中的单词会被挨个取出,并存到变量“n”中,“ (name)中的单词会被挨个取出,并存到变量n中,(n).o”每次根据“ ( n ) ”计算出一个值,这些值以空格分隔,最后作为 f o r e a c h 函数的返回,所以, (n)”计算出一个值,这些值以空格分隔,最后作为foreach函数的返回,所以, (n)计算出一个值,这些值以空格分隔,最后作为foreach函数的返回,所以,(files)的值是“a.o b.o c.o d.o”。

注意,foreach中的;参数是一个临时的局部变量,foreach函数执行完后,参数;的变量将不在作用,其作用域只在foreach函数当中。

wildcard命令:

命令 含义
wildcard $(dir)/*.c 表示$(dir)目录下的所有.c文件

basename命令:

命令 含义
basename 目录名/文件名 获取末尾目录名或者文件名
basename 文件名 文件后缀 获取末尾文件名称,同时去掉文件后缀
basename -s 文件后缀 文件名 (同上)获取末尾文件名称,同时去掉文件后缀
basename -s 文件名 文件后缀 只获取文件后缀,去掉文件名
basename -a 目录1/文件1 目录2/文件2 同时输出多个目录或者文件的名称 (使用basename的时候,如果目录或者文件不存在,不会报错)

四,总结

本文主要介绍,如何在高通hexagon ide中的hexagon.min中添加获取目录和.c文件的方法,供参考。欢迎一起讨论交流~

猜你喜欢

转载自blog.csdn.net/xuxu_123_/article/details/131053327