所以我有makefile
HEADERS = preferences.h distances.h
OBJECTS = movie_recommender.o preferences.o distances.o
default: movie_recommender
%.o: %.c $(HEADERS)
; gcc -c $< -o $@
movie_recommender: $(OBJECTS)
; gcc $(OBJECTS) -o $@
clean:
; -rm -f $(OBJECTS)
; -rm -f movie_recommender
我收到错误:
No rule to make target 'movie_recommender.o', needed by 'movie_recommender'. Stop.
File paths 我试过添加目标,
movie_recommender.o: movie_recommender.c
gcc -c movie_recommender.c
我收到另一个错误。谁能告诉我我做错了什么? 非常感谢!
答案 0 :(得分:2)
make
程序仅查找文件的当前目录。当前目录中没有movie_recommender.c
个文件,因此make
看不到它,也找不到任何方法{.1}}。
解决方案是添加make makefile,了解源和头目录,您可以with the vpath
directive。如果你添加
movie_recommender.o
然后它会自动查找vpath %.c src
目录中的%.c
个文件。
同样,src
也找不到您的标题。
GCC也找不到标题,也无法了解make
的{{1}},因此您需要将make
传递给GCC。