一,简介
本文主要介绍,如何在高通hexagon ide中的hexagon.min中添加获取目录和.c文件的方法,供参考。
二,具体命令
OBJ_PATH := ./awinic_sp_module/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>;所包含的表达式。每一次
所以,;最好是一个变量名,;可以是一个表达式,而
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文件的方法,供参考。欢迎一起讨论交流~