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