我已經閱讀了其他問題提出類似的事情,唉,我仍然困惑。如何使用Makefiles編譯包含多個目錄的C++項目?
這是我目前的Makefile:
CC = g++
EXEFILE = template
IFLAGS= -I/usr/include/freetype2 -I../Camera
LFLAGS= -L/usr/lib/nvidia-375 -L/usr/local/lib -L/usr/include/GL -L/usr/local/include/freetype2 -L/usr/local/lib/
LIBS = -lglfw -lGL -lGLU -lOpenGL -lGLEW -pthread -lfreetype
SRC=*.cpp
DEPS=*.h
$(EXEFILE):
$(CC) -std=c++11 -o $(EXEFILE) -Wall -Wno-comment $(SRC) $(IFLAGS) $(LFLAGS) $(LIBS)
all: run clean
run: $(EXEFILE)
./$(EXEFILE)
clean:
rm $(EXEFILE)
現在我所有的.h文件和.cpp文件上的工作目錄,一切編譯和運行就好了。我的問題是我已經有大量的文件,並且變得相當混亂。我想創建多個目錄(甚至可能在這些目錄內的目錄)來組織我的文件。但只要我將一個頭文件和相應的cpp文件移動到當前目錄中的某個目錄,編譯器就不知道如何鏈接它們了。
如何告訴我的make文件編譯並鏈接當前根目錄下的所有內容?
另外,是否有一個ELI5指南makefile語法?
可能的重複[來自源文件中的子目錄](http://stackoverflow.com/questions/4036191/sources-from-subdirectories-in-makefile) – flyx
如果你更換你的構建過程會更好'$(EXEFILE):'帶'$(EXEFILE):$(SRC)' - 不需要刪除可執行文件來重建它。雖然你真的想在最後一個階段使用'$(OBJ)',所以你不想每次都重新編譯每個源文件。 –
爲了更容易編譯 - 查看Cmake。 – SHG