我在Windows XP SP2下使用MinGW 3.18,GNU make 3.82。MinGW/GNU Make - “多个目标模式”
我试图将路径中的脚本返回值并接收错误。
这工作:
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的定义)
我仔细检查了$(版本)它在两种情况下都具有相同的值,明显没有前导/尾随空白或换行符:
@echo [$(version)]
[1.1.1]
你有一个Makefile(至少)1359行代码?这让我想哭! – 2012-03-25 15:49:05
你确定它设置为相同的值吗?例如,如果它找不到命令,它将被设置为'/ bin/sh:get_version.sh:command not found',其中包含冒号并会导致严重问题。 – 2012-03-25 15:57:57