制作文件宏
Make file macro
# this is a comment
OBJS = student.o teacher.o class.o
CC = g++
DEBUG = -g
CFLAGS = -Wall –c $(DEBUG)
LFLAGS = -Wall $(DEBUG)
myproj.exe : $(OBJS)
$(CC) $(LFLAGS) $(OBJS) –o myproj.exe
student.o : student.h student.cpp
$(CC) $(CFLAGS) student.cpp
teacher.o : teacher.h teacher.cpp
$(CC) $(CFLAGS) teacher.cpp
class.o : class.h student.h teacher.h class.cpp
$(CC) $(CFLAGS) class.cpp
有人能告诉我为什么 CFLAGS 和 LFALGS 后面有 $(DEBUG) 吗?
这样就不用每次编译的时候都写了或者link.
让我们从您的文件中取出这两行:
student.o : student.h student.cpp
$(CC) $(CFLAGS) student.cpp
如果 $(CFLAGS)
中没有 $(DEBUG)
,则必须写
student.o : student.h student.cpp
$(CC) $(CFLAGS) $(DEBUG) student.cpp
并为每个 规则和命令执行$(DEBUG)
。
# this is a comment
OBJS = student.o teacher.o class.o
CC = g++
DEBUG = -g
CFLAGS = -Wall –c $(DEBUG)
LFLAGS = -Wall $(DEBUG)
myproj.exe : $(OBJS)
$(CC) $(LFLAGS) $(OBJS) –o myproj.exe
student.o : student.h student.cpp
$(CC) $(CFLAGS) student.cpp
teacher.o : teacher.h teacher.cpp
$(CC) $(CFLAGS) teacher.cpp
class.o : class.h student.h teacher.h class.cpp
$(CC) $(CFLAGS) class.cpp
有人能告诉我为什么 CFLAGS 和 LFALGS 后面有 $(DEBUG) 吗?
这样就不用每次编译的时候都写了或者link.
让我们从您的文件中取出这两行:
student.o : student.h student.cpp
$(CC) $(CFLAGS) student.cpp
如果 $(CFLAGS)
中没有 $(DEBUG)
,则必须写
student.o : student.h student.cpp
$(CC) $(CFLAGS) $(DEBUG) student.cpp
并为每个 规则和命令执行$(DEBUG)
。