makefile编写模板
在Linux上进行编译代码时,为了简化每次编译时手写g++命令,使用makefile文件进行编译减少工作量,这里记录一个简单的makefile模板,使用时直接简单替换一下路径和名称即可。
#编译工具
CC=g++
#编译选项
CFLAGES=-O2 -Wall -std=c++0x
#头文件路径
INCLUDE_PATH=-I../include
#库文件路径
LIB_PATH=-L./ -l(动态库名称,需要手动替换或删除这段) -lrt -lpthread -ldl -lm
#obj文件,遍历当前目录下所有cpp,生成.o
OBJ=$(patsubst %.cpp,%.o,$(wildcard *.cpp))
#obj文件,遍历当前目录下所有c,生成.o
OBJC=$(patsubst %.c,%.o,$(wildcard *.c))
#生成的二进制文件名称
Target := demo
# $@表示目标,这里是$(Target)
# $^表示代表所有的依赖对象,这里是$(OBJ) $(OBJC)
$(Target) : $(OBJ) $(OBJC)
$(CC) -o $@ $^ $(CFLAGES) $(INCLUDE_PATH) $(LIB_PATH)
#OBJ生成规则
%.o : %.c
$(CC) -c $(CFLAGES) $(INCLUDE_PATH) $< -o $@
%.o : %.cpp
$(CC) -c $(CFLAGES) $(INCLUDE_PATH) $< -o $@
#make clean命令清除
.PHONY clean:
rm -rf $(OBJ) $(OBJC) $(Target)