2012-03-09 100 views
0

我有簡單的文件: hello.h,HELLO.CPP在makefile創建靜態庫,使用Linux G ++編譯器

我已經爲了生成靜態庫(libhello.a)創建一個makefile 但我收到錯誤消息,我在做什麼錯?

我的代碼是:

CC = g++ 
CFLAGS = -Wall -g 
utilObjs = hello.o 

libhello.a: $(utilObjs) 
    ar rc [email protected] $(utilObjs) 
    ranlib [email protected] 

hello: hello.o libhello.a 
    $(CC) $(CFLAGS) hello.o -L ./ -lutil -o [email protected] 

hello.o: hello.cpp hello.h 
    $(CC) $(CFLAGS) -c $> 

clean: 
    rm -rf *.o libhello.a hello 

all: hello 
.PHONY: all clean 

錯誤消息: G ++:致命錯誤:沒有輸入文件 編譯終止

+0

默認的GNU * make *規則(你可以通過'make -p'獲得它們)已經有了編譯C++的規則,使用'CXX'而不是'CC'等。使用'remake'來幫助調試'Makefile' – 2012-03-09 17:16:32

回答

3

我不認爲$>意味着什麼特殊,將其更改爲$<,這擴大到了規則的第一個前提條件。 (在這種情況下,hello.cpp)