Make

如何在 Makefile 中使用 cat 創建的變數中進行字元串替換?

  • June 3, 2020

在我的Makefile中,我根據文件的內容分配了一些變數,並且我想通過對文件的內容進行字元串替換來定義一個新變數。

.file-a我的項目目錄中有一個名為的文件,其內容如下:

foo-bar

我的Makefile樣子是這樣的:

FILE_A_NAME := .file-a
FILE_A_CONTENTS := `cat $(FILE_A_NAME)`
NEW_VAR := $(subst -,_, $(FILE_A_CONTENTS))

.PHONY: foo
foo: 
   @echo $(NEW_VAR)

我想make fooecho foo_bar,但相反,我得到:

cat: .file_a: No such file or directory

似乎NEW_VAR正在對FILE_A_NAME. 我怎樣才能讓替換工作FILE_A_CONTENTS

您需要使用該shell功能來執行cat

FILE_A_CONTENTS := $(shell cat $(FILE_A_NAME))

引用自:https://unix.stackexchange.com/questions/590670