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的代码