2015-12-08 54 views
0

的Makefile:錯誤運行使所有makefile中

all: my1 my2 my3 my4 
s2: s1 
    tr "1" "2" <s1> s2 
    chmod u+x s2 
s3: s1 
    tr "1" "4" <s1> s3 
    chmod u+x s3 

prog.cpp : i1 i2 i3 
    cat i1 > prog.cpp 
    cat i1 >> prog.cpp 
    cat i3 >> prog.cpp 

prog2.cpp: prog1.cpp 
    tr "1" "2" <prog1.cpp> prog2.cpp 

prog3.cpp: prog1.cpp 
    tr "1" "3" <prog1.cpp> prog2.cpp 

prog4.cpp: prog1.cpp 
    tr "1" "4" <prog1.cpp> temp 
    sed 's/READY/NOT READY/' temp > prog4.cpp 

prog1.o: prog1.cpp 
    g++ -c prog1.cpp 
prog2.o: prog2.cpp 
    g++ -c prog2.cpp 
prog3.o: prog3.cpp 
    g++ -c prog3.cpp 
prog4.o: prog4.cpp 
    g++ -c prog4.cpp 

my1: prog.cpp 
    s1 
my2: prog.cpp 
    s2 
my3: prog.cpp prog1.o prog2.o prog3.o prog4.o 
    g++ -o prog prog.cpp -D_d3 prog1.o prog2.o prog3.o prog4.o 

my4: prog.cpp 
    s3 

clean: 

enter image description here

,當我嘗試運行我讓所有的命令,它給人的錯誤。我已經參加了2個多小時的節目,並且無法弄清楚爲什麼!任何幫助/想法? i1 i2 i3是簡單的文本文件,s1是bash腳本。

+0

錯誤消息說's1:未找到命令'。我在你的make文件中沒有看到任何創建's1'文件的東西。這應該是在你的項目目錄,或在你的路徑。或者你錯過了make文件中的一個步驟,它會創建一個's1'對象。 (多年以來,我用'make'做了很多,所以我已經忘記了一個基本的東西,而這整個評論都是錯誤的)。祝你好運。 – shellter

+0

@shellter我目錄中的最後一個文件是s1(在prog1.cpp下面)。我只是假定當它需要時,make會在s1的目錄中查找。我應該在makefile中調用s1(如何?)? – Laura

+0

對不起,我錯過了。 (我總是將我的dir列出w'ls -ltr'來查看底部最新創建的文件(這可能對你有幫助))。奇怪你得到那個錯誤消息。你的makefile中有沒有'cd' cmds?否則我就沒有想法。對不起,祝你好運。 – shellter

回答

0

很可能.不在PATH。您可以將.添加到PATH,或在makefile中調用./s1