01工程檔案目錄規劃、Makefile編寫
阿新 • • 發佈:2022-03-03
一、工程檔案目錄規劃
主目錄名nginx
a)_include目錄:專門存放各種標頭檔案;如果分散:#include "sfaf/sdafas/safd.h"
b)app目錄:放主應用程式.c(main()函式所在的檔案)以及一些比較核心的檔案;
——b.1)link_obj:臨時目錄,會存放臨時的.o目標檔案,這個目錄不是手工建立,後續用makefile指令碼來建立的;
——b.2)dep:臨時目錄,會存放臨時的.d開頭的依賴檔案,依賴檔案能夠告知系統哪些相關的檔案發生變化,需要重新編譯,後續用makefile指令碼來建立;
——b.3)nginx.c:主檔案,main()入口函式就放到這裡;
——b.4)ngx_conf.c
c)misc目錄:專門存放各種雜合性的不好歸類的1到多個.c檔案;暫時為空
d)net目錄:專門存放和網路處理相關的1到多個.c檔案,暫時為空
e)proc目錄:專門存放和程序處理有關的1到多個.c檔案,暫時為空
f)signal目錄:專門用於存放和訊號處理有關的1到多個.c檔案;
二、Makefile編寫
規劃一下makefile檔案的編寫
a)nginx根目錄下我會放三個檔案:
——a.1)makefile:是編譯專案的入口指令碼,編譯專案從這裡開始,起總體控制作用;
——a.2)config.mk:這是個配置指令碼,被makefile檔案包含;單獨分離出來是為了應付一些可變的東西,所以,一般變動的東西都往這裡搞;
——a.3)common.mk
b)每個子目錄下(app,signal)都有一個叫做
makefile
的檔案,每個這個makefile檔案,都會包含根目錄下的common.mk,從而實現自己這個子目錄下的.c檔案的編譯。現在的makefile不支援目錄中套子目錄(只支援一級目錄),除非大家自己修改;c)其他規劃,上邊講過;
——
app/link_obj
:臨時目錄,存放.o目標檔案——
app/dep
:存放.d開頭的依賴關係檔案;細節:
生成依賴檔案和連結檔案的位置設定
make clean
命令
PS:贈送書籍《GUN_makefile中文手冊》
連結:https://pan.baidu.com/s/1z46By5692uQEO_1QG0PH3w
提取碼:2xnu
失效請留言。