該makefile生成.o
文件src/branch/
以及包含Makefile的頂級項目目錄。爲什麼makefile會在當前目錄中生成目標文件?
CXX := g++
SRC += $(wildcard src/file/*.cpp)
SRC += $(wildcard src/random/*.cpp)
SRC += $(wildcard src/termui/*.cpp)
SRC += $(wildcard src/graphics/*.cpp)
SRC += $(wildcard src/memory/*.cpp)
SRC += $(wildcard src/*.cpp)
OBJ := $(SRC:.cpp=.o)
MAIN=ProcC
CXXFLAGS := -g -fPIC -std=c++11 -fpermissive
LIBS := -lboost_system -lboost_serialization -lboost_filesystem
LIBDIR = -L ~/c/libraries/boost/lib -L ~/c/libraries/SFGUI-0.3.0/lib
INCDIR = -I include/ -I ~/c/libraries/boost/include/
.PHONY: depend clean
all: $(MAIN)
@echo Successfully compiled ProcC source code
$(MAIN): $(OBJ)
@echo Linking ProcC objects and dependencies into executable.
$(CXX) $(CXXFLAGS) $(INCDIR) $(LIBDIR) -c $(SRC) $(LIBS)
rm *.o
.cpp.o:
@echo Compiling ProcC source code into objects.
$(CXX) $(CXXFLAGS) $(INCDIR) -c $< -o [email protected]
clean:
$(RM) $(OBJ)
depend: $(SRCS)
makedepend $(INCDIR) $^
此生成文件應該產生來自源對象,但不是 可執行程序;我打算從這個項目中創建.so
文件,因爲它是一個庫。在這個makefile中有什麼我做錯了嗎?
'all'也是'.PHONY','depend'是不必要的。 –