2012-08-03 78 views
0

我正在嘗試爲現有項目實現命令行界面。我這樣做的方式是使用兩個獨立的makefile。一個是項目已經存在的makefile,另一個是CLI。我首先運行CLI makefile,獲取必要的文件,然後使用項目的makefile將這些文件與現有項目鏈接起來。現在,問題是我每次將現有項目的函數添加到CLI文件時,CLI makefile會繼續並建立這些函數,我不希望它這樣做,因爲那不是必需的,並且給我提供了警告和錯誤(因爲我沒有想要保持包括所有標題和.o的)。忽略來自make的函數

長話短說,我可以做些什麼,使CLI的makefile忽略添加到CLI文件的功能,而不是在函數內部查看所有內容?

+0

如果CLI不依賴於要更改的文件,請不要將這些文件作爲CLI Makefile中的依賴項添加。如果它依賴於它們,它肯定需要重建? – Useless 2012-08-03 19:06:12

+0

CLI確實依賴於它們,就它解析函數名稱而言,它並不需要重建,因爲它更關注函數的名稱(實際字符串),而不是函數內部發生的事情。除此之外,我將在主項目中添加此CLI文件,它可以檢查所需的功能! – Scranton 2012-08-03 19:11:39

+1

如果CLI依賴於聲明函數的頭,但不依賴於'.c',它只會在函數添加/刪除/重命名時重新編譯,而不是在實現更改時重新編譯。 – Useless 2012-08-03 19:20:50

回答

1

讓其中一個makefile在編譯過程(-DuseCLI)中爲宏添加一個定義(稱爲useCLI)。對於你不想編譯的函數,用#ifndef useCLI#endif環繞它們。不過,要小心依賴關係。

+0

非常好!這可能真的有幫助! – Scranton 2012-08-03 19:13:51