如何删除gnu make文件中的最后一个尾部(后退)斜杠?

时间:2015-10-14 13:17:33

标签: gcc compilation makefile gnu

我想写一个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

2 个答案:

答案 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