2016-11-21 101 views
0

我在想,如果StackOverflow能夠幫助我今天!所以我目前正在完成一個C項目,在我的一個CS大學課程中,我遇到了一個有趣的問題。當我在我的OSX環境中使用'make'和'make test'命令時,它運行得很好,但是當我在Ubuntu虛擬機上測試它時,它給了我這些錯誤:Makefile適用於OS X,但不適用於Ubuntu

make:prim:Command not found

makefile:32:目標配方'測試失敗。

化妝:*** [測試]錯誤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

我想你想改變這一點:

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 ############################### 
+0

我會試試這個,然後回覆給你編輯:它修復了我的錯誤,但現在它只是打印出prim1.txt,但從未打印出實際輸出? –

+0

'prim'是否產生輸出?我的猜測是,事實並非如此。 :-) – jszakmeister

+0

它在mac上,我相信它,因爲我沒有初始化所有我的變量爲NULL開始和Linux不喜歡 –

2
make: prim:Command not found 

該錯誤消息告訴你什麼是錯的。在Ubuntu上無法在PATH中找到prim。假設prim是剛建立在本地目錄中的程序,您應該在Makefile中運行./prim

+0

我試過,但只是給了我更多的錯誤。 –

相關問題