CC=g++
CFLAGS=-c -Wall
LDFLAGS=
SOURCES=main.cpp hello.cpp factorial.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=hello
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
Run Code Online (Sandbox Code Playgroud)
什么做的$@和$<准确呢?
我试图理解一个简单的命令行字符串,它执行Javac并传递一些简单的参数.完整的命令行是:
javac -d $(OUTPATH) -sourcepath $(SOURCEPATH) $<
Run Code Online (Sandbox Code Playgroud)
除了最终的代币之外,这一行中的所有内容都是直截了当的,也是可以理解的:$<.
这些代币是什么意思?
附录:事实上,评论者是正确的.该行出现在makefile中.现在对我来说很明显,但是当我写这个问题时,make并没有将makefile传递给shell脚本.
请注意:$ <和$ @在Makefile中代表什么?还讨论了这个问题(当我查找以前关于此的问题时,我没有看到它).
makefile ×3