我正在尝试创建一个makefile,该makefile使用来自不同目录中的txt文件的输入来执行。我的苦恼是这样的:
project/misc/input.txt
project/programms/findlines.c
到目前为止我的makefile是这样的:
# #Paths to input files
words-10= ../../misc/words
#compiler used
CC = gcc
#Files .o
OBJS = find_lines.o words-10
#Executable programm
EXEC = find_lines
#Parameters
ARGS =
$(EXEC): $(OBJS)
$(CC) $(OBJS) -o $(EXEC) $(LDFLAGS)
clean:
rm -f $(OBJS) $(EXEC)
run:
time ./find_lines < words-10
valgrind:
valgrind ./find_lines < words-10
似乎编译器未找到输入文件,并且投射了错误“不存在这样的文件”
words-10
的变量替换应与makefile中其他变量(例如CC
,OBJS
和EXEC
)相同:您将要用words-10
或[替换对$(words-10)
的引用C0]。
此外,您可能不希望它包含在${words-10}
中,因为它看起来不像您想要传递给OBJS
进行链接的文件。
gcc
编辑:这是解决方案的结局,谢谢大家的帮助!
words-10 = ../../ misc / words
CC = gcc
OBJS = find_lines.o
EXEC = find_lines
ARGS = $(words-10)/ words-10
$(EXEC):$(OBJS)$(CC)$(OBJS)-o $(EXEC)
干净:rm -f $(OBJS)$(EXEC)
运行:时间./$(EXEC)
valgrind:valgrind ./find_lines