69,371
社区成员
发帖
与我相关
我的任务
分享
CXX = g++
CXXFLAGS = -g -shared -fPIC -Xlinker --unresolved-symbols=ignore-in-shared-libs
LDPFALGS = -lrt -lpthread
# define compiling temporary dir
CPP_FILES := $(wildcard *.cpp)
OBJ_FILES := $(addprefix ./obj/,$(notdir $(CPP_FILES:.cpp=.o)))
all:$(OBJ_FILES)
$(OBJ_FILES): $(CPP_FILES)
$(CXX) $(CXXFLAGS) -c -o $@ $<
clean:
rm -rf $(OBJ_FILES)
$(OBJ_FILES): $(CPP_FILES)
$(CXX) $(CXXFLAGS) -c -o $@ $<
改成:
$(OBJ_PATH)/%.o:%.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
就可以了。
不清楚这里的%.o:%.cpp 和 $(OBJ_FILES): $(CPP_FILES)什么差别?
CXX = g++
CXXFLAGS = -g -shared -fPIC -Xlinker --unresolved-symbols=ignore-in-shared-libs
LDPFALGS = -lrt -lpthread
# define compiling temporary dir
CPP_FILES := $(wildcard *.cpp)
OBJ_FILES := $(addprefix ./obj/,$(notdir $(CPP_FILES:.cpp=.o)))
TARGET := test
all:$(TARGET)
%.o: $(CPP_FILES)
$(CXX) $(CXXFLAGS) -c -o $@ $<
$(TARGET):$(OBJ_FILES)
$(CXX) $(CXXFLAGS) -o $@ $^
clean:
rm -rf $(OBJ_FILES)