目前我正面临一个由make变量评估引起的Makefile问题.我已经降低了复杂性,只留下产生问题的基本要素.
任何想法如何解决或解决这个问题?
Makefile文件:
LIST=$(wildcard src/*.txt)
all: step1 step2
step1:
@echo "---------- step1 ----------"
@echo $(LIST)
rm src/q1.txt
ls src
step2:
@echo "---------- step2 ----------"
@echo $(LIST)
cp $(LIST) ./dst
Run Code Online (Sandbox Code Playgroud)
执行记录:
$ make
---------- step1 ----------
src/q1.txt src/q2.txt
rm src/q1.txt
ls src
q2.txt
---------- step2 ----------
src/q1.txt src/q2.txt
cp src/q1.txt src/q2.txt ./dst
cp: cannot stat `src/q1.txt': No such file or directory
make: *** [step2] Error 1
Run Code Online (Sandbox Code Playgroud)
不要使用通配符函数.
LIST = src/*.txt
all: step1 step2
step1:
@echo "---------- step1 ----------"
@echo $(LIST)
rm src/q1.txt
ls src
step2:
@echo "---------- step2 ----------"
@echo $(LIST)
cp $(LIST) ./dst
Run Code Online (Sandbox Code Playgroud)