1級makefil:
.phony: clean:
@for subdir in $(subdirs); do \
(cd $$subdir && make clean); \
done
②級makefile:
target := lib$(notdir $(curdir)).a
objs := $(wildcard *.o)
cc_flags += -fpic -md # 靜態庫合成動態庫選項
ar := arm-linux-ar
ar_flags := rcs
ifdef arg
else
export c_flags := -g -wall -o3
export ccg := arm-linux-gcc
endif
all:$(objs)
$(ar) $(ar_flags) $(target) $(objs)
.phony: clean
clean:
rm -rf *.o *.a
嵌入式makefile總結:
1、優化**空間 使用-wall -os選項。
2、使用export傳遞編譯器選項引數。
3、靜態庫編譯時已經新增到可執行檔案中。
4、幾個靜態庫一起鏈結時,如果有依賴關係,則需先鏈結被依賴庫。
4、動態庫需在目標機庫中加入.so檔案。
5、幾個靜態庫如果需合併成乙個靜態庫,則ar x lib***.a ar cru libxx.a *.o即可。
6、注釋不能#開頭,不然複製會亂碼。
Makefile工程編譯
1.寫在前面 本篇文章講的是接前面makefile之編譯多個可執行程式中第二個需求,並延伸到對正規工程的編譯。2.工程 我接觸的工程有2種情況 所有原始檔都放乙個目錄 按模組分放不同的目錄 下面按照這兩種情況講解。3.所有原始檔都放乙個目錄 不建議所有原始檔都放乙個目錄,當工程大時,乙個目錄下會有很...
Makefile工程管理
1 makefile用途 make的工作主要依賴於乙個叫makefile的檔案。makefile檔案描述了整個程式的編譯,鏈結等規則。其中包括 工程中的哪些原始檔需要編譯以及如何編譯,如何最後產生我們想要的可執行檔案。2 makefile中最重要的組成部分是規則 規則 用於說明如何生成目標檔案,規則...
makefile工程管理
當工程量少時,可以採用gcc檔案單個編譯。像linux kernel 1萬多個時採用make管理。linux程式設計師必須學會使用gnu make來構建和管理自己的軟體工程。make在執行時,需要乙個命名為makefile的檔案。makefile檔案描述了整個工程的編譯 鏈結等規則。makefile...