makefile变量定义
CFLAG=-g -Wall
TARGET=run
makefile通配符使用
当前所有的cpp文件 SRC=$(wildcard ./*.cpp)
当前所有的cpp文件替换成o文件 OBJ=$(SRC:.cpp=.o)
makefile函数使用
实例
CC=@g++
CFLAG=-g -O -fpermissive
MYSQL=/usr/local/mysql
INCLUDE=-I$(MYSQL)/include
LIBDIR=-L$(MYSQL)/lib
LIB=-lmysqlclient
TARGET=run
PRJDIR=.
SRC=$(wildcard $(PRJDIR)/*.cpp)
OBJ=$(SRC:.cpp=.o)
all: $(TARGET)
$(OBJ):%.o:%.cpp
@echo compiling $< ...
$(CC) -c -o $(PRJDIR)/$@ $(PRJDIR)/$< $(CFLAG) $(INCLUDE)
$(TARGET): $(OBJ)
$(CC) -o $(PRJDIR)/$@ $(PRJDIR)/$^ $(LIBDIR) $(LIB)
@echo done
clean:
rm -f $(OBJ) ./$(TARGET)