2012-04-05 63 views
0

我有main.cpp(包括main函數)和func1.cpp,我想用makefile鏈接這些文件。經典的形式是:makefile上的行的順序

main: main.o func1.o 
    g++ main.o func1.o -o main 
main.o: main.cpp 
    g++ -c main.cpp 
func1.o: func1.cpp 
    g++ -c func1.cpp 

或一個可以寫

main: func1.o main.o 
    g++ main.o func1.o -o main 
func1.o: func1.cpp 
    g++ -c func1.cpp 
main.o: main.cpp 
    g++ -c main.cpp 

main: main.o func1.o 
    g++ main.o func1.o -o main 
func1.o: func1.cpp 
    g++ -c func1.cpp 
main.o: main.cpp 
    g++ -c main.cpp 

做最後兩人從經典的有什麼區別?一個人比另一個人有什麼優勢嗎?

回答

0

不,只有規則的訂單起作用的時候,您只需輸入make,在這種情況下,它可以選擇第一個規則作爲默認值。

除此之外,make具有足夠的智能來執行依賴規則,無論它們在文件中的什麼位置。

0

三套路線之間沒有區別。然而,make知道如何建立.cpp文件到目標文件,讓你真正需要的是:

main: main.o func1.o 
     g++ main.o func1.o -o [email protected] 
+1

或許'G ++ $^-o $ @'避免重複自己。 – 2012-04-05 15:52:52

+0

更好:-) – 2012-04-05 17:14:35