광산에서는 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 foo
echo 하고 싶지만 foo_bar
대신 다음과 같은 결과를 얻습니다.
cat: .file_a: No such file or directory
NEW_VAR
교체가 이루어지고 있는 것 같습니다 FILE_A_NAME
. 교체 작업을 수행하려면 어떻게 해야 합니까 FILE_A_CONTENTS
?
답변1
shell
다음을 실행하려면 이 함수를 사용해야 합니다 cat
.
FILE_A_CONTENTS := $(shell cat $(FILE_A_NAME))