makefile中-o和-c是什么意思
时间: 2024-10-28 13:13:02 浏览: 23
Makefile文件的-mapgis10教程
在Makefile中,`-o` 和 `-c` 都是命令行选项,用于控制构建过程。
1. `-o` (目标) 或 `OUTPUT` (通常写作 `-o [target]` 或 `[target]:`):这个选项指定make的目标文件。当你运行 `make [target]` 时,make会尝试生成指定的输出文件。例如:
```shell
executable: main.o library.o
gcc -o executable main.o library.o
```
这里 `main.o` 和 `library.o` 是源文件编译后的目标文件,最终通过 `gcc` 指令链接成 `executable`。
2. `-c` (预编译) 或 `COMPILE` (通常写法为 `$(SOURCES:.cpp=.o): $(SOURCES)` 或 `-c [source]`):
这个选项告诉make只编译指定的源文件(`.cpp`、`.cc` 等),但不立即连接它们。这常用于大型项目中,可以单独处理每个源文件的编译,提高效率。如果一个目标已经是最新的源文件版本,make就会跳过链接步骤,仅更新依赖的库。例如:
```shell
%.o: %.cpp
g++ -c $< -o $@
```
在这条规则中,`$<` 表示前一阶段的依赖项(这里是源文件 `.cpp`),`$@` 表示当前的目标(`.o` 文件)。
阅读全文