2013-10-17 25 views
1

我有一個生成文件來構建我的C++程序。這是我想要它做的。 1.將main.cpp和cipher.cpp編譯成.o的 2.將兩個.o連接兩次,一個連接到一個名爲cipher的可執行文件,另一個解碼器。這是一個有效的生成文件?

我有兩個可執行文件的原因是main.cpp通過檢查argv來檢查您正在使用的可執行文件,然後相應地進行密碼或解密。

我寫這個makefile是在這裏:Makefile on Pastebin.com

這是一個有效的/好makefile文件?我想知道這是否會奏效,以及是否有更好的方法來做到這一點。

回答

0

是的,這無疑是有效的。如果兩個可執行文件是真正的意圖是相同的,你可以通過一個副本或其他的硬鏈接,而不是編譯相同的代碼兩次節省一些工作:

cipher: main.o cipher.o 
     $(GCC) $(FLAGS) main.o cipher.o -o [email protected] 

decipher: cipher 
     ln -f $< [email protected] 

請注意,我用的automatic variables$<[email protected]分別指代第一先決條件名稱和目標名稱。他們在這裏並不是絕對必要的,但我認爲他們是很好的做法,因爲當你開始指定更復雜的模式匹配規則時,他們確實派上用場。

+0

你也可以在'cipher'規則中使用'$ ^'。 – Beta