gpt4 book ai didi

linux - 在 makefile 中指定文件名

转载 作者:太空宇宙 更新时间:2023-11-04 12:03:09 28 4
gpt4 key购买 nike

我是新手,正在尝试创建一个我可以运行的 makefile,例如,运行:

make -f mymakefile testfile

makefile 会找到 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

我试过让它 echo 'testfile' 来更好地理解自动变量是如何工作的,但我也无法让它正常工作。

最佳答案

make 命令行上的参数选择要构建的目标。您不能像使用 shell 脚本那样将值传递给变量(就像您尝试使用“NAME”一样。)

如果你真的想为一个变量传递一个值,命令应该是:

NAME=testfile make -f mymakefile 

关于linux - 在 makefile 中指定文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51663084/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com