1.gcc参数

-o指定生成文件名

-c只编译不链接

2.makefile标准格式

CC=gcc    #编译器变量,#代表注释
SRCS=main.cpp\#源文件变量
    a.cpp\
    b.cpp\
    c.cpp
OBJS=$(SRCS:.cpp=.o) #将SRCS中的.cpp全部替换为.o文件

EXEC=myapp#可执行文件编程

start: $(OBJS)#依赖文件
    $(CC) -o $(EXEC) $(OBJS)
.cpp.o: #每一个源文件和对应的目标文件
    $(CC) -o $@ -c $< #编译生成对应源文件的目标文件


clean:
    rm -rf $(OBJS)#删除中间文件

 3.makefile当要编译的多个文件中有发生改变的,则只重新编译和链接发生改变的文件,其他的文件不用重新编译,加快了编译速度

4.上文2中的makefile为一个标准的makefile文件格式,当有新增加的文件时,只要在SRCS=后面添加一个源文件,后面其他内容不用改变。

5.make不关心.h文件,.h文件由编译器管理,如果.h文件发生变化,那么需要将原来的.o文件删除进行重新编译链接

6.makefile是根据.cpp和.o文件的最后修改图日期判断.cpp文件是否需要编译,如果.o文件不存在,则make失去判断条件,一定会编译.cpp文件