makefile问题,想像vs一样将目标文件,输出文件存放在指定文件夹,而不是在源文件的目录
SRCDIR=src/
OBJSDIR=../temp/client_net/linux/
TARDIR=../lib/
SRCS=$(wildcard src/*.cpp)
OBJS=$(addprefix $(OBJSDIR), $(notdir $(patsubst %.cpp, %.o, $(SRCS))))
TAR=$(addprefix $(TARDIR), libclient_net.so)
CXXFLAGS=-Iinterface -I.. -fpic
LDFLAGS=-L../lib -lACE -shared
$(shell "if [ ! -f $(OBJSDIR) ]; then mkdir -p $(OBJSDIR) fi")
.PHONY:all clean
all:$(TAR)
$(TAR):$(OBJS)
$(CXX) $(LDFLAGS) -o $@ $^
$(OBJSDIR)%.o:$(SRCDIR)%.cpp
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
clean:
@rm $(OBJS) $(TAR)
makefile如上,但是创建目标文件目录总是失败,有什么其他方法吗?
$(shell "if [ ! -f $(OBJSDIR) ]; then mkdir -p $(OBJSDIR) fi")这个一直失败 。。。
Visual?Studio Makefile shell 目录
[解决办法]
我一般是这么处理的
install:
@if [ ! -f $(OBJSDIR) ];then \
mkdir -p $(OBJSDIR) \
fi \
[解决办法]
ifeq ($(wildcard $(OBJSDIR)), )
mkdir -p $(OBJSDIR)
endif