1. Makefile基本语法与执行
作用:
Makefile 文件告诉 Make 怎样编译和连接成一个程序
可用命令
dnf install make
安装make功能
格式:
按如下格式编写 Makefile
目标(target): 依赖(prerequiries)...
命令(command)
注意:每个命令行前面必须是一个Tab字符,即命令行第一个字符是Tab
实验:
vim Makefile 编辑文件:
simpletest:simple.o simpletest.o
g++ simple.o simpletest.o -o simpletest
simple.o:simple.cpp
g++ -c simple.cpp -o simple.o
simpletest.o:simpletest.cpp
g++ -c simpletest.cpp -o simpletest.o
结果为:
[root@foundation1 shishi]# make
g++ -c simple.cpp -o simple.o
g++ -c simpletest.cpp -o simpletest.o
g++ simple.o simpletest.o -o simpletest
命令上下是有顺序的,上一行对下一行具有依赖关系
如果文件夹中已经有.o文件,make后会提示已经生成,需要删除.o文件后再make
clean的作用: 被指定时会删除对应.o文件,避免上述情况
simpletest:simple.o simpletest.o
g++ simple.o simpletest.o -o simpletest
simple.o:simple.cpp
g++ -c simple.cpp -o simple.o
simpletest.o:simpletest.cpp
g++ -c simpletest.cpp -o simpletest.o
clean:
rm simpletest simple.o simpletest.o
结果为:
[root@foundation1 shishi]# make clean
rm simpletest simple.o simpletest.o
[root@foundation1 shishi]# make
g++ -c simple.cpp -o simple.o
g++ -c simpletest.cpp -o simpletest.o
g++ simple.o simpletest.o -o simpletest
2. Makefile简化过程
使用变量: 如果调用某个文件用的次数较多,可以使用变量代替,变量可以直接替换
变量定义: 变量 = 字符串
变量使用: $(变量名)
makefile 文件可改为:
TARGET = simpletest
OBJS = simple.o simpletest.o
$(TARGET):$(OBJS)
g++ $(OBJS) -o $(TARGET)
simple.o:simple.cpp
g++ -c simple.cpp -o simple.o
simpletest