一些概念
- 嵌入式開發(fā)
在特定的硬件環(huán)境下,針對某款特定硬件進(jìn)行開發(fā)拿诸。
是系統(tǒng)級別的與硬件結(jié)合比較緊密的軟件開發(fā)技術(shù)。 - 交叉(cross)編譯 和 本地(native)編譯
構(gòu)建系統(tǒng)(build系統(tǒng)):生成編譯器可執(zhí)行程序的計算機(jī)
主機(jī)系統(tǒng)(host系統(tǒng)):運(yùn)行編譯器可執(zhí)行程序塞茅,編譯鏈接應(yīng)用程序的計算機(jī)系統(tǒng)內(nèi)
目標(biāo)系統(tǒng)(target系統(tǒng)):運(yùn)行應(yīng)用程序的計算機(jī)系統(tǒng)
本地編譯:build == host == target
交叉編譯:build == host != target
- 工具
- 調(diào)試器GDB
- 模擬器QEMU
- 項目構(gòu)造工具M(jìn)ake
Make是一種自動化工程管理工具佳镜。
Makefile配合Make,用于描述構(gòu)建工程過程中所管理的對象以及如何構(gòu)造工程的過程凡桥。
Make如何找到makefile:隱式(當(dāng)前目錄下按順序找文件名為GNUmakefile、makefile蚀同、Makefile的文件)或顯式(-f)
Makefile寫法
Makefile由一條或者多條規(guī)則 (rule) 組成缅刽。
每條規(guī)則由三要素構(gòu)成:
target目標(biāo): 可以是 obi 文件也可以是可執(zhí)行文件
prerequisites: 生成 target 所需要的依賴
command: 為了生成 target 需要執(zhí)行的命令,可以有多條
target... : prerequisites ...
[TAB] command...
...
1
hello: hello.c
gcc he11o.c -o he1lo
缺省規(guī)則蠢络、偽規(guī)則...
注釋以#開頭
1704289107749.png