我想知道StackOverflow今天是否可以帮助我!因此,我目前正在为我在Uni的一个CS课程完成一个C项目,我遇到了一个有趣的问题。当我在我的OSX环境中使用命令'make'和'make test'时它运行得很好,但是当我在Ubuntu虚拟机上测试它时,它给了我这些错误:
make:prim:找不到命令
makefile:32:目标'测试失败的配方。
make:*** [test]错误127
下面是我的makefile代码,感谢任何帮助。
OBJS = main.o scanner.o AM.o binheap.o CDLL.o node.o prim.o vertex.o
OPTS = -Wall -Wextra -g -std=c99
main : $(OBJS)
gcc $(OPTS) $(OBJS) -o prim -lm
main.o : main.c scanner.h AM.h binheap.h CDLL.h node.h prim.h vertex.h
gcc $(OPTS) -c main.c
scanner.o : scanner.c scanner.h
gcc $(OPTS) -c scanner.c
node.o : node.c node.h
gcc $(OPTS) -c node.c
AM.o : AM.c AM.h
gcc $(OPTS) -c AM.c
prim.o : prim.c prim.h
gcc $(OPTS) -c prim.c
binheap.o : binheap.c binheap.h
gcc $(OPTS) -c binheap.c
CDLL.o : CDLL.c CDLL.h
gcc $(OPTS) -c CDLL.c
vertex.o : vertex.c vertex.h
gcc $(OPTS) -c vertex.c
test: prim
@echo ###############################
@echo TESTING GRAPH1.TXT
@echo prim graph1.txt
@echo ###############################
prim graph1.txt
@echo ###############################
@echo TESTING GRAPH2.TXT
@echo prim graph2.txt
@echo ###############################
prim graph2.txt
@echo ###############################
clean :
rm -f $(OBJS) main
答案 0 :(得分:2)
make: prim:Command not found
该错误消息告诉您错误的原因。在Ubuntu的prim
中找不到PATH
。假设prim
是您刚刚在本地目录中构建的程序,那么您应该在Makefile中运行./prim
。
答案 1 :(得分:0)
我想你想改变这个:
main : $(OBJS)
gcc $(OPTS) $(OBJS) -o prim -lm
为:
prim : $(OBJS)
gcc $(OPTS) $(OBJS) -o prim -lm
此外,除非prim
以某种方式在路径上,否则您的shell将无法找到它。将测试规则编写为:
test: prim
@echo ###############################
@echo TESTING GRAPH1.TXT
@echo prim graph1.txt
@echo ###############################
./prim graph1.txt
@echo ###############################
@echo TESTING GRAPH2.TXT
@echo prim graph2.txt
@echo ###############################
./prim graph2.txt
@echo ###############################