初识Makefile
继续学习Advanced Linux Programming.
Java程序员应该很熟悉Ant这个构建工具,Makefile是类似的自动化构建工具,很多C/C++程序都是用Makefile来构建的。
同样使用《安装C/C++编译环境》的示例程序,初步了解Makefile的使用.
下面的Makefile将自动完成编译、连接和工作。
reciprocal: main.o reciprocal.o g++ $(CFLAGS) -o reciprocal main.o reciprocal.o main.o: main.c reciprocal.hpp gcc $(CFLAGS) -c main.c reciprocal.o: reciprocal.cpp reciprocal.hpp g++ $(CFLAGS) -c reciprocal.cpp clean: rm -f *.o reciprocal
冒号左边是目标(target),与Ant中的target类似,冒号右边是该目标的依赖。第一目标下面是该目标的执行规则,规则左边必须有Tab空格。
其中的$(CFLAGS)是make变量,可以在Makefile文件中定义,也可以在命令行一定义。
执行make命令将自动构建该程序:
make CFLAGS=-o2
定义CFLAGS, -o2为编译优化程序的参数:
make