47 lines
708 B
Markdown
47 lines
708 B
Markdown
![]() |
# makefile
|
|||
|
|
|||
|
makefile 是一个通用的项目代码构建器
|
|||
|
由规则 依赖 命令构成
|
|||
|
|
|||
|
规则:依赖
|
|||
|
命令
|
|||
|
|
|||
|
+ -n 参数可以打印出make会执行的命令,但不真正执行
|
|||
|
|
|||
|
# 注意: 命令前面必须要用Tab
|
|||
|
|
|||
|
# 伪目标
|
|||
|
.PHONY:clean
|
|||
|
|
|||
|
# 自动变量
|
|||
|
$@ 目标文件
|
|||
|
$< 第一个依赖文件
|
|||
|
$^ 全部的依赖文件
|
|||
|
|
|||
|
# 普通变量定义
|
|||
|
OPTION = -O3 -Wall
|
|||
|
|
|||
|
# 变量使用
|
|||
|
g++ $(OPTION) xxx
|
|||
|
|
|||
|
# 使用通配符
|
|||
|
%.o: %.c
|
|||
|
g++ $(OPTION) -c $< -o $@
|
|||
|
|
|||
|
|
|||
|
```makefile
|
|||
|
.PHONY:clean
|
|||
|
INCLUDE = -I/home/e0x2d/include
|
|||
|
main: file1.o file2.o
|
|||
|
g++ -o $@ file1.o file2.o
|
|||
|
|
|||
|
file1.o: file1.cpp
|
|||
|
g++ -c file1.o file1.cpp
|
|||
|
|
|||
|
file2.o: file2.cpp
|
|||
|
g++ -c file2.o file2.cpp ${INCLUDE}
|
|||
|
|
|||
|
clean:
|
|||
|
rm *.o demo
|
|||
|
```
|