目文件结构如下所示时:
project/├── main.cpp├── test.cpp├── DIRA/│ ├── A.cpp│ └── A.h├── DIRBLIB/│ └── libB.so└── include/└── B.h
Makefile如下所示:
# 编译器设置
CXX = g++
CXXFLAGS = -std=c++11 -Wall# 目录设置
DIRA = /path/to/DIRA
DIRBLIB = /path/to/DIRBLIB
INCDIR = /path/to/include# 依赖库设置
LIBS = -L$(DIRBLIB) -lB# 目标文件设置
OUTPUT = main# 源文件列表
SRCS = main.cpp test.cpp $(DIRA)/A.cpp# 目标文件列表
OBJS = $(SRCS:.cpp=.o)# 链接生成可执行文件
$(OUTPUT): $(OBJS)$(CXX) $(CXXFLAGS) -I$(INCDIR) -o $@ $^ $(LIBS)# 编译生成目标文件
%.o: %.cpp$(CXX) $(CXXFLAGS) -I$(INCDIR) -c $< -o $@# 清理编译生成的文件
clean:rm -f $(OBJS) $(OUTPUT)