2013-02-11 126 views
1

我得到了一個項目的代碼在多個目錄中,我想要做的是遞歸編譯這些目錄中的每一個,並且我可以這樣做。Makefile,遞歸編譯和靜態庫

我可以創造這樣的.a文件的靜態庫與此生成的文件

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)) 

但我不知道如何將這些與我的主程序鏈接,

任何幫助將是非常有用的,

感謝,

+0

-1:請告訴我們你已經嘗試了什麼。如果您嘗試,「在互聯網上」的來源很可能已經告訴您如何去做。 – thiton 2013-02-11 21:30:45

+0

我已經添加了兩種類型的makefile的代碼 – lpostula 2013-02-11 21:34:35

回答

1

,可以包括靜態庫(.a)在直接連接的命令:

gcc -o executable main.o admin.a 
+0

非常感謝,它完全是我需要使其工作的。 – lpostula 2013-02-11 23:17:21