我在 Windows XP SP2 下使用 MinGW 3.18,GNU make 3.82。
我尝试将脚本返回的值合并到路径中并收到错误。
这有效:
PROD_DIR=$(ROOT_DIR)/PROD
version=1.1.1
PROD_SOURCE_files = \
file1 \
file2
PROD_TARGET_files = $(patsubst %,$(PROD_DIR)/$(version)/%,$(PROD_SOURCE_files))
这不会:
PROD_DIR=$(ROOT_DIR)/PROD
version=`get_version.sh`
PROD_SOURCE_files = \
file1 \
file2
PROD_TARGET_files = $(patsubst %,$(PROD_DIR)/$(version)/%,$(PROD_SOURCE_files))
Makefile:1359: *** multiple target patterns. Stop.
(第1359行是PROD_TARGET_files的定义)
我已经仔细检查了 $(version),它在两种情况下具有相同的值,显然没有前导/尾随空格或换行符:
@echo [$(version)]
[1.1.1]
最佳答案
关于makefile - MinGW/GNU 品牌 - "multiple target patterns",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9861449/