Linux 在makefile中指定文件名
我是新手,正在尝试创建一个makefile,在其中我可以运行,例如:Linux 在makefile中指定文件名,linux,gnu-make,makefile-errors,Linux,Gnu Make,Makefile Errors,我是新手,正在尝试创建一个makefile,在其中我可以运行,例如: make -f mymakefile testfile 生成文件将找到testfile.java(存在于我运行的目录中),编译它,然后运行代码 相反,我必须对自动变量是如何工作的感到困惑,在工作了一下午之后,我仍然得到了错误: make: Nothing to be done for `testfile'. 任何帮助都将不胜感激,我的代码如下: JC=javac JVM=java JFLAGS= -g RM = rm -f
make -f mymakefile testfile
生成文件将找到testfile.java(存在于我运行的目录中),编译它,然后运行代码
相反,我必须对自动变量是如何工作的感到困惑,在工作了一下午之后,我仍然得到了错误:
make: Nothing to be done for `testfile'.
任何帮助都将不胜感激,我的代码如下:
JC=javac
JVM=java
JFLAGS= -g
RM = rm -f
CFLAGS =
CXX = gcc
NAME = *
.SUFFIXES: .java .class
all: run
NAME:
$(CXX) $(CFLAGS) -o $^ $@
echo $(NAME)
$(NAME).class: $(NAME)
$(JC) $(JFLAGS) $(NAME).java
run: $(NAME).class
$(JVM) $(NAME)
.PHONY: clean
clean:
$(RM) $(NAME).class
我试着让它回显“testfile”,以便更好地理解自动变量是如何工作的,但我也无法让它正常工作 make命令行上的参数选择要生成的目标。您不能像使用shell脚本那样将值传递给变量(就像您尝试使用“NAME”一样) 如果确实要传递变量的值,则命令如下:
NAME=testfile make -f mymakefile
$您可能希望覆盖Makefile:make-f mymakefile NAME=testfile
中的名称,而不是通过环境进行传递。