C++ 对象文件需要放在不同的目录中

C++ 对象文件需要放在不同的目录中,c++,makefile,C++,Makefile,如果有人能帮我解决Makefile错误,我将不胜感激。我想编译一个C++应用程序到共享库中,并将编译后的对象*.o文件放在./sObjs目录中,如下所示。我按照几个例子来做这件事,但是我仍然有问题得到这个正确的编译和链接器 生成文件: OBJS = a1.o a2.o a3.o a4.o a5.o objects = sobj/$(OBJS) all: $(objects) $(CXX) $(CXX_FLAGS) $(objects) -shared -o libname.s

如果有人能帮我解决Makefile错误,我将不胜感激。我想编译一个C++应用程序到共享库中,并将编译后的对象*.o文件放在./sObjs目录中,如下所示。我按照几个例子来做这件事,但是我仍然有问题得到这个正确的编译和链接器

生成文件:

OBJS = a1.o a2.o a3.o a4.o a5.o

objects = sobj/$(OBJS)

all: $(objects)
        $(CXX) $(CXX_FLAGS) $(objects) -shared -o libname.so

$(objects) : | sobjs

sobjs:
        @mkdir -p $@

sobjs/%.o: %.cpp
        @echo $<
        $(CXX) -fPIC -c -o $@ $< $(CXX_FLAGS) $(MY_FLAGS) $(INCLUDE_DIRS)

我犯了一个错误。替换这个

objects = sobj/$(OBJS)
用这个

objects = $(patsubst %.o, sobjs/%.o,$(OBJS))

现在它将正确编译文件。

错误是什么?一条消息,还是不正确的结果?@SagarSakre:用户在提问48小时后才能接受自己对问题的回答。