C++ Makefile、递归编译和静态库

C++ Makefile、递归编译和静态库,c++,makefile,C++,Makefile,我得到了一个在多个目录中包含代码的项目,我试图做的是递归地编译这些目录中的每一个,我可以这样做 我可以创建静态库,这样.a文件就可以使用这个makefile CXX=g++ CXXFLAGS=-std=c++11 PROJECT=admin.a OBJECTS = Manager.o all: $(PROJECT) .cpp.o: @echo -e "\033[32m -Building "$*"...\033[0m" $(CXX) -c $(CXXFLAGS) $<

我得到了一个在多个目录中包含代码的项目,我试图做的是递归地编译这些目录中的每一个,我可以这样做

我可以创建静态库,这样
.a
文件就可以使用这个makefile

CXX=g++
CXXFLAGS=-std=c++11
PROJECT=admin.a

OBJECTS = Manager.o


all: $(PROJECT)

.cpp.o:
    @echo -e "\033[32m -Building "$*"...\033[0m"
    $(CXX) -c $(CXXFLAGS) $<

$(PROJECT): $(OBJECTS)
    @echo -ne "\033[31m -Creating static library "$*"..."
    @(ar rcs $(PROJECT) $(OBJECTS))
    @echo -e "[DONE] \033[0m"

clean:
    @(rm -rf *.o)

mrproper: clean
    @(rm -rf $(EXEC))
CXX=g++
CXXFLAGS=-std=c++11
项目=管理a
OBJECTS=Manager.o
全部:$(项目)
.cpp.o:
@echo-e“\033[32m-建筑”$*”..\033[0m”
$(CXX)-c$(CXXFLAGS)$<
$(项目):$(对象)
@echo-ne“\033[31m-创建静态库“$*”…”
@(ar rcs$(项目)$(对象))
@回声-e“[完成]\033[0m”
清洁:
@(rm-rf*.o)
正确:清洁
@(rm-rf$(执行)
但我不知道如何把这些和我的主程序联系起来

任何帮助都会非常有用


谢谢,

您可以在链接器行中直接包含静态库(
.a
):

gcc -o executable main.o admin.a

-1:请告诉我们您尝试了什么。如果您尝试的话,很可能“internet上”的源代码已经向您展示了如何做。我已经添加了两种类型的makefile的代码