生成文件:使用“纯生成语法”读取文件(无shell命令)

K.M*_*ier 2 gnu makefile gnu-make

我想读取文本文件的内容,并将其分配给我的makefile中的变量。我阅读了制作手册ch 8.6:file函数,并在我的makefile中编写了以下简单代码段:

# Snippet from my makefile

my_var = $(file < C:/full/path/to/my_file.txt)

all:
    @echo $(my_var)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

*** Invalid file operation: < C:/full/path/to/my_file.txt.  Stop.
Run Code Online (Sandbox Code Playgroud)

我特意选择$(file ..)而不是$(shell ..)函数来读取文件。那是因为我的makefile应该尽可能与平台无关。$(file ..)函数是纯makefile语法,而$(shell ..)函数则包含shell语法。

我究竟做错了什么?

use*_*267 5

如果要使用读取文件,则需要升级至至少4.2版$(file <)