makefile为不工作的对象文件创建自己的目录



我是makefiles的新手,希望将所有对象文件保存在自己的目录中。我在谷歌上搜索了很多,找到了这个解决方案:

CXX = clang++
# compiler flags
CXXFLAGS = -O3 -Wall -Werror -std=c++11
CFLAGS_SFML = -lsfml-graphics -lsfml-window -lsfml-system
SRCS = getInput.cpp createOutput.cpp main.cpp
OBJDIR = obj
OBJS = $(addprefix $(OBJDIR)/, SRCS:.cpp=.o)
all: program.exe
program.exe: $(OBJS)
    $(CXX) $(CXXFLAGS) -o program.exe $(OBJS) $(CFLAGS_SFML)
$(OBJDIR)/%.o: %.cpp
    $(CXX) $(CXXFLAGS) -c $< -o $@

当我尝试运行makefile时,我得到了这个错误:

makefile:12: *** target pattern contains no `%'. Stop.

这个错误似乎很常见,并没有详细说明问题所在。如果有人能帮我就太好了。

OBJS = $(addprefix $(OBJDIR)/, SRCS:.cpp=.o) 问题

试试这个。首先,您还必须创建obj目录。

CXX = clang++
# compiler flags
CXXFLAGS = -O3 -Wall -Werror -std=c++11
CFLAGS_SFML = -lsfml-graphics -lsfml-window -lsfml-system
SRCS = main.cpp
OBJDIR = obj
OBJS = $(addprefix $(OBJDIR)/, $(SRCS:.cpp=.o))

all: program.exe
program.exe: $(OBJS)
    $(CXX) $(CXXFLAGS) -o program.exe $(OBJS) $(CFLAGS_SFML)
$(OBJDIR)/%.o: %.cpp
    $(CXX) $(CXXFLAGS) -c $< -o $@

有关更多信息,请使用此。

最新更新