Makefile步步為營
本目錄主要包含Makefile一步步遞進學習的示例代碼
makefile代碼實體:https://www.lanzous.com/i9m9npi

step0:Makefile小實驗
進行Makefile小實驗,體驗Makefile的功能,
目錄中的Makefile是不嚴謹的撰寫方式,
目錄中的Makefile_PHONY是嚴謹的撰寫方式,
make實驗
切換至step0目錄下,即Makefile所在的同級目錄,使用如下命令實驗:
#在主機上Makefile所在的目錄執行如下命令
#查看當前目錄的內容
ls
#執行make命令,make會在當前目錄下搜索“Makefile”或“makefile”,并執行
make
#可看到make命令后的輸出,它執行了Makefile中撰寫的命令
#查看執行make命令后的目錄內容,多了test.txt檔案
ls
#執行Makefile的targetd目標,并查看,少了test.txt檔案
make targetd
ls
#執行Makefile的targetb目標,并查看,又生成了test.txt檔案
make targetb
ls
#執行Makefile的targetc目標
make targetc
make使用-f引數可以指定使用其它檔案,
#通過-f選項指定make使用的Makefile檔案
make -f Makefile_PHONY
#本示例中其它操作與Makefile功能相同
step1:使用Makefile編譯程式
使用Makefile編譯Hello示例程式,
編譯
編譯的輸出為hello_main檔案
切換至step1目錄下,即Makefile所在的同級目錄,使用如下命令編譯:
#后編譯
make
運行
編譯后使用如下命令運行:
./hello_main
step2:使用Makefile默認編譯規則
使用Makefile編譯Hello示例程式,Makefile中使用o檔案依賴
編譯及運行
本實驗編譯及運行操作與step1相同,切換至step2目錄操作即可,
step3:使用變數
使用Makefile編譯Hello示例程式,Makefile中使用變數
編譯及運行
本實驗編譯及運行操作與step1相同,切換至step3目錄操作即可,
Makefile_test實驗
Makefile_test檔案用于變數賦值實驗測驗,可執行如下命令實驗:
make -f Makefile
#實驗輸出為Makefile中各個變數的值
step4:使用變數及分支
使用Makefile編譯Hello示例程式,Makefile中使用變數定義最終目標,并使用分支支持不同的架構
x86架構編譯及運行
切換至step4目錄下,即Makefile所在的同級目錄,使用如下命令編譯:
#先清理,否則可能因為*.o檔案架構不同而出錯
make clean
#后編譯
make
編譯后使用如下命令運行:
./hello_main
ARM架構編譯及運行
切換至step4目錄下,即Makefile所在的同級目錄,使用如下命令編譯:
#先清理,否則可能因為*.o檔案架構不同而出錯
make clean
#后編譯
make ARCH=arm
編譯后使用如下命令運行:
./hello_main
step5:使用函式
使用Makefile編譯Hello示例程式,Makefile中使用函式,并支持層級目錄,
x86架構編譯及運行
切換至step5目錄下,即Makefile所在的同級目錄,使用如下命令編譯:
make
編譯的輸出目錄為bulid_x86
編譯后使用如下命令運行:
.bulid_x86/hello_main
ARM架構編譯及運行
切換至step5目錄下,即Makefile所在的同級目錄,使用如下命令編譯:
make ARCH=arm
編譯的輸出目錄為bulid_arm
編譯后使用如下命令運行:
.bulid_arm/hello_main
清理檔案
若要清理檔案,也要指定架構
- 清理x86的編譯輸出,默認架構為x86,直接make clean即可:
make clean
- 清理arm的編譯輸出,需要使用ARCH=arm指定:
make clean ARCH=arm
- 清理所有的編譯輸出,可以直接使用cleanall目標:
make cleanall
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/13641.html
標籤:嵌入式
上一篇:scons自動化構建工具
下一篇:802.11成幀細節
