2013-07-22 148 views
1

我試圖在不同的目錄中獲取目標文件和可執行文件。在根文件夾中有一個obj和exe文件夾,但我不知道如何讓make來運行它。不同目錄中的Makefile,可執行文件和目標文件

我曾嘗試這樣的東西:

$(EXEDIR)/sfml-app: $(OBJ) 

$(OBJDIR)/%.o: %.cpp 

,但它給我的錯誤。任何人都可以解釋我如何才能讓它運行?

回答

2

如果你想讓你的輸出到另一個目錄,你必須告訴make(和編譯器)。他們不會猜測,因爲你有一個名爲OBJDIR的變量!你必須真正使用它。

確保你的目標名稱具有目錄前綴,以便讓知道,你所期望的目標文件,結束了:

OBJ = $(patsubst %.cpp, $(OBJDIR)/%.o, $(SRC)) 

,並確保你告訴編譯器在您想要的目標文件由落得使用-o標誌:

$(OBJDIR)/%.o: %.cpp 
     $(CXX) $(CXXFLAGS) -c $< -o [email protected] 

同樣,如果您想在最終輸出可爲EXEDIR你在Makefile使用它都發送值連接器,再次通過-o

all: $(EXEDIR)/sfml-app 

$(EXEDIR)/sfml-app: $(OBJ) 
     $(CXX) -o [email protected] $(OBJ) $(LIBS) 
相關問題