简单的MakeFile编写
命令行生成执行程序
命令行分步执行生成可执行程序步骤繁琐,所以尝试编写MakeFile进行编译;
比如main.cpp编译时依赖usage_energy.cpp,所以编译步骤如下:
g++ -c usage_energy.cpp -o usage_energy.o
g++ -std=c++11 -pthread -c main.cpp -o main.o
g++ main.o usage_energy.o -o test -pthread
编写makefile时有一定的规则:
目标(target): 需要的条件(dependencies) (注意冒号右边有空格)
命令(system command) (注意前边用tab键开头)
解释一下:
1、目标可以是一个或多个,可以是Objiect File,也可以是执行文件,甚至可以是一个标签。
2、需要的条件就是生成目标所需要的文件或目标
3、命令就是生成目标所需要执行的命令
总结:
Makefile规则规定了编译的依赖关系,目标文件依赖于条件,命令表示目标文件与所依赖条件之间的规则。
Makefile:
OBJS = main.o usage_energy.o
test: $(OBJS) #表示最终生成的test执行程序依赖于main.o和usage_energy.o
g++ $(OBJS) -o test -pthread #命令行,前面必须为tab,编译出test可执行文件。-o表示你指定的目标文件名。
main.o: main.cpp usage_energy.h
g++ -std=c++11 -pthread -c main.cpp -o main.o
usage_energy.o: usage_energy.cpp usage_energy.h
g++ -c usage_energy.cpp -o usage_energy.o
clean: #当用户键入make clean命令时,会删除*.o 和test可执行文件。
rm -rf *.o test
写好makefile,在终端里面直接键入make就会执行makefile中的指令了。