我在下面的Makefile中遇到困難。它總是重新編譯,因爲它正在尋找「source /」中的對象而不是「objects /」。Makefile始終重新編譯
由於我沒有編寫Makefile,也不知道所有這些選項的意思,我不知道如何告訴它在正確的文件夾中查找對象。
TITLE =example_title
SRC_DIR = source/
OBJ_DIR = objects/
OUTDIR = build/
SRC := $(wildcard **/*.cpp)
OBJ := $(patsubst source/%.cpp,%.o,$(SRC))
FP_OBJ := $(patsubst %,objects/%,$(OBJ))
LIB = $(wildcard *.a) $(wildcard **/*.a)
CC =g++
LD =g++
CC_FLAGS = -m32 -c -Wall -g -o
EXECUTABLE = $(TITLE)
LD_FLAGS = -m32 -L/usr/lib32 -o $(OUTDIR)$(EXECUTABLE)
$(OUTDIR)$(EXECUTABLE) : $(OBJ)
$(LD) $(LD_FLAGS) $(FP_OBJ) $(LIB)
$(OBJ) : $(SRC)
$(CC) $(CC_FLAGS)$(OBJ_DIR)[email protected] $(SRC_DIR)$*.cpp
$(TITLE).tar.gz : **/*.h **/*.cpp Makefile **/*.txt
tar -czf [email protected] Makefile **/*.h **/*.cpp **/*.txt
dist: $(TITLE).tar.gz
all : $(OUTDIR)$(EXECUTABLE)
clean :
rm -f $(OBJ_DIR)*.o
rm -f $(OUTDIR)$(EXECUTABLE) $(TITLE).tar.gz
將來如何糾正_your_ makefile對他人的幫助?這是一個問答資源,不是一個幫助臺... –
我知道這可能是一個令人討厭的問題,但我提供了這個makefile爲大學的任務,我不知道一個更合適或更快的地方在哪裏得到一個正確的答案。然而,測試版還包含了一個解釋,所以也許這將在未來幫助其他人。在問之前,我也試圖自己修復它,但沒有創建這樣的Makefiles的知識,我沒有得到任何地方...... – Susan