写Makefile(二)

 在写Makefile(一)中,提供了一个简单的书写Makefile的例子,这个例子再简单不过了。后面我们将继续提供一个稍微复杂的例子。

 

现在源文件有三个,main.cpp,tdes.cpp和tdes.h,Makefile内容如下:

CC=aCC DEFS=-AA -g INCLUDES= -I. LIBS= TARGET=main DEFINES= $(DEFS) $(INCLUDES) CFLAGS= $(DEFINES) -o OBJS=main.o tdes.o all:$(TARGET) tdes.o:tdes.cpp tdes.h $(CC) $(CFLAGS) tdes.o -c tdes.cpp main.o:main.cpp $(CC) $(CFLAGS) main.o -c main.cpp $(TARGET):$(OBJS) $(CC) $(CFLAGS) $(TARGET) $(OBJS) $(LIBS) clean: rm -rf $(OBJS) rm -rf $(TARGET)

由于是C++代码,用到了编译选项-AA,还想用gdb调试,用到了-g选项。
使用上面的Makefile,可以在DEFS后面定义一些选项和宏,在INCLUDES中定义一些头文件的包含目录,在LIBS后面指定要链接的库文件。

但是现在还有一个问题,对于每个.cpp文件,都要编写一个.o和.cpp文件的依赖规则和编译命令,如果源文件随着项目的增大有很多,几十个甚至上百个,那么按照这样写出来的Makefile将非常不具有可读性和维护性。

你可能感兴趣的:(c,makefile)