一些概念
- 嵌入式开发
在特定的硬件环境下,针对某款特定硬件进行开发。
是系统级别的与硬件结合比较紧密的软件开发技术。 - 交叉(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
缺省规则、伪规则...
注释以#开头