2013-10-19 68 views
0

我有以下簡單的makefilegcc的makefile依存不會產生

#all: binsem.a ut.a ph 
FLAGS = -Wall -L./ 

binsem.a: 
    gcc $(FLAGS) -c binsem.c 
    ar rcu libbinsem.a binsem.o 
    ranlib libbinsem.a 


ut.a: 
    gcc $(FLAGS) -c ut.c 
    ar rcu libut.a ut.o 
    ranlib libut.a 

clean: 
    rm -f *.o 
    rm -f a.out 
    rm -f *~ 
    rm -f ph 
    rm -f *a 

問題是,它僅產生可能是因爲依賴問題binsem.a而不是ut.a。

我試着看着國旗,但沒有找到答案。

非常感謝。

回答

1

默認情況下,如果您沒有在命令行中指定目標,make將構建它找到的第一個目標(如果它有任何依賴項)。你的第一個目標是binsem.a,並且你沒有列出任何依賴關係,所以這是唯一被構建的東西。

嘗試像頂部添加此:

all: binsem.a ut.a 

並註明依賴於你的其他目標:

binsem.a: binsem.c 
... 
ut.a: ut.c 
+0

非常感謝,解決 –