Makefile:展开相对PREFIX路径

erj*_*ang 14 makefile gnu-make

在我的Makefile中,有一个PREFIX变量用于指定应该放置完成文件的位置.但是,在内部,我需要使用绝对路径,PREFIX因为工作目录会更改.

我试过类似的东西

PREFIX=../out
REALPREFIX=`readlink -f $(PREFIX)`
Run Code Online (Sandbox Code Playgroud)

这不起作用,也没有

default: fixprefix $(addprefix $(REALPREFIX)/,$(OBJS))

fixprefix:
        REALPREFIX=`readlink -f $(PREFIX)`
Run Code Online (Sandbox Code Playgroud)

我只需要在OBJS计算先决条件列表时将绝对路径作为前缀.

Bet*_*eta 26

如果你正在使用GNUMake,你可以这样做:

REALPREFIX = $(realpath $(PREFIX))
Run Code Online (Sandbox Code Playgroud)

  • 注意如果你要扩展的路径还不存在,你可以使用 `$(abspath $(PATH))` (2认同)