我正在用C編程語言編寫UDP客戶端服務器應用程序;我想在依賴關係發生變化時自動編譯2個源文件和3個頭文件,因此我決定使用make實用程序。使用makefile編譯頭文件依賴關係
生成文件的目標被稱爲「編輯」:
edit : server_UDP.o client_UDP.o \
gcc -o edit server_UDP.o client_UDP.o \
client_UDP.o : client_UDP.c cliHeader_UDP.h wrapHeader.h
gcc -c client_UDP.c
server_UDP.o : server_UDP.c servHeader_UDP.h wrapHeader.h
gcc -c server_UDP.c
當我改變的代碼wrapHeader.h幾行它不會引發重新編譯。
當wrapHeader.h中有更改以重新編譯server_UDP和client_UDP時,如何修改編輯makefile規則?
**注意:wrapHeader.h是主頭部
cliHeader_UDP.h:包括 「wrapHeader.h」
servHeader_UDP.h:包括 「wrapHeader.h」
'gcc'和Gnu'make'都有一個*奇妙的功能集,當它們相互協調工作時,它們將完全按照您的需求進行操作。 'gcc -MM'編譯器開關將*幾乎*爲你生成一個'make'兼容的目標。有關如何完成此操作的信息以及一些示例代碼,請參閱gnu make [在此網站]的在線文檔(http://www.gnu.org/software/make/manual/html_node/index.html ),並特別關注[本節](http://www.gnu.org/software/make/manual/html_node/Automatic-Prerequisites.html#Automatic-Prerequisites)。 – WhozCraig 2013-04-07 01:28:55
[Makefile,header dependencies]可能的重複(http://stackoverflow.com/questions/2394609/makefile-header-dependencies) – 2016-12-20 00:02:18