【发布时间】:2011-09-29 12:55:17
【问题描述】:
有人知道我的 Makefile 出了什么问题吗?
CXX = g++ # compiler
CXXFLAGS = -g -Wall -MMD # compiler flags
MAKEFILE_NAME = ${firstword ${MAKEFILE_LIST}} # makefile name
OBJECTS1 = utf.o # object files forming executable
EXEC1 = utf # executable name
OBJECTS2 = driver.o rational.o # object files forming executable
EXEC2 = rational # executable name
OBJECTS3 = da.o qa.o pa.o ua.o # object files forming executable
EXEC3 = ho # executable name
OBJECTS = ${OBJECTS1} ${OBJECTS2} ${OBJECTS3}
EXECS = ${EXEC1} ${EXEC2} ${EXEC3}
DEPENDS = ${OBJECTS:.o=.d} # substitute ".o" with ".d"
.PHONY : all clean
all : ${EXECS}
${EXEC1} : ${OBJECTS1} # link step
${CXX} $^ -o $@
${EXEC2} : ${OBJECTS2} # link step
${CXX} $^ -o $@
${EXEC3} : ${OBJECTS3} # link step
${CXX} $^ -o $@
${OBJECTS} : ${MAKEFILE_NAME} # OPTIONAL : changes to this file => recompile
-include ${DEPENDS} # include *.d files containing program dependences
clean : # remove files that can be regenerated
rm -f ${DEPENDS} ${OBJECTS} ${EXECS}
错误:
./Makefile: 1: CXX: not found
./Makefile: 2: CXXFLAGS: not found
./Makefile: 3: Bad substitution
【问题讨论】:
-
你用什么命令行来调用你的 Makefile?
-
错误消息给我的印象是您正在尝试执行 makefile,而不是调用
make。 -
@Mark:该死,因为它不是 bash 脚本,如果您对 bash 脚本非常了解,您会发现它不是。在问这样的问题之前做一些基础研究。你一次都没有打开你的搜索引擎……你把一个陌生人的makefile扔给我们,希望得到一些免费的劳动力……巴杰。
-
@Mark:为了阅读“更多”内容,首先必须阅读关于它的任何内容。
-
让 cmets 保持建设性。我不会关闭它,因为它是关于主题和可回答的。 @Mark - 如果你向同行征求意见,请接受它很有礼貌。
标签: makefile