相关疑难解决方法(0)

在GNU Make中加入列表的元素

在我的makefile中,我有一个带有目录列表的变量,如下所示:

DIRS = /usr /usr/share/ /lib
Run Code Online (Sandbox Code Playgroud)

现在,我需要从它创建PATH变量,它基本相同,但使用分号作为分隔符:

PATH = /usr:/usr/share/:/lib
Run Code Online (Sandbox Code Playgroud)

我怎么做?我的意思是,我如何用分号而不是空格加入DIRS列表的元素?

makefile

23
推荐指数
2
解决办法
1万
查看次数

GNU将转换空间转换为冒号

给定以冒号分隔的路径列表,使用GNU Make获取以空格分隔的列表非常简单:

CPATHS := /usr/bin/foo:/usr/bin/baz:/usr/bin/baz
SPATHS := $(subst :, ,$(CPATHS))
Run Code Online (Sandbox Code Playgroud)

但是,我找不到朝着相反方向前进的好方法.以下hack确实有效(至少在安装了sed的情况下)但是我很确定只有使用Make的内部函数才能有更好的解决方法.

SPATHS := /usr/bin/foo /usr/bin/baz /usr/bin/baz
CPATHS := $(shell echo $(SPATHS) > tmp; sed 's/ \+/:/g' tmp; rm tmp)
Run Code Online (Sandbox Code Playgroud)

makefile space path gnu-make colon

18
推荐指数
2
解决办法
4363
查看次数

标签 统计

makefile ×2

colon ×1

gnu-make ×1

path ×1

space ×1