1
我試圖在不同的目錄中獲取目標文件和可執行文件。在根文件夾中有一個obj和exe文件夾,但我不知道如何讓make來運行它。不同目錄中的Makefile,可執行文件和目標文件
我曾嘗試這樣的東西:
$(EXEDIR)/sfml-app: $(OBJ)
和
$(OBJDIR)/%.o: %.cpp
,但它給我的錯誤。任何人都可以解釋我如何才能讓它運行?
我試圖在不同的目錄中獲取目標文件和可執行文件。在根文件夾中有一個obj和exe文件夾,但我不知道如何讓make來運行它。不同目錄中的Makefile,可執行文件和目標文件
我曾嘗試這樣的東西:
$(EXEDIR)/sfml-app: $(OBJ)
和
$(OBJDIR)/%.o: %.cpp
,但它給我的錯誤。任何人都可以解釋我如何才能讓它運行?
如果你想讓你的輸出到另一個目錄,你必須告訴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)