我想写一个make文件来编译我的源代码。我必须在我的make文件中添加包含路径,但我有很多带源代码的文件夹。 在make文件中,我有一个包含所有.c文件的列表,如下所示:
__MDA_SRC = \
$(__VIEWPATH)\f_03\test\mda\src\mda.c
现在我需要找出这个文件的路径。
我试过这个:
__PATHS_FEATURE = \
$(dir $(__MDA_SRC ))
__INCLUDE_PATHES := \
-I$(__PATHS_FEATURE)
但我有一个错误F100: cannot open ...bla bla..
我认为问题出在路径上,因为路径是用最后一个反斜杠挤出的,如:
..\..\..\..\..\f_03\test\mda\src\
我怎么能没有这样的最后反斜杠的路径:
..\..\..\..\..\f_02\hydraulic\btc\src
答案 0 :(得分:7)
这对我来说似乎不太可能是问题,但你可以用
删除它$(__PATHS_FEATURE:\=)
或
$(patsubst %\,%,$(__PATHS_FEATURE))
答案 1 :(得分:1)
这可能无法解决您的问题,因为您的路径不是绝对路径,但是'abspath'和'realpath'间接地执行您要查找的操作。 'realpath'将删除最后的正斜杠以及任何正斜杠。 ..或重复/
pathwslash=/dirs/and/more/dirs/
path=$(realpath $(pathwslash))
echo $(path) # /dirs/and/more/dirs
以下是一些其他功能的文档,可能会有所帮助:https://www.gnu.org/software/make/manual/html_node/File-Name-Functions.html