获取生成文件以更改输出可执行文件名称



我正在为学校作业编写一个制作文件,但遇到了一些问题。我似乎无法使用 -o 标志将输出可执行文件命名为我想要的名称。相反,它正在创建一个名为 a.out 的可执行文件(运行正常)。

当我使用"make clean"命令时,它告诉我我想要的可执行文件名称不存在。我对"make"命令如何无法识别程序名称而"make clean"命令感到困惑。任何反馈将不胜感激。

PROGRAM = osuSystem
CXX = g++
CXXFLAGS = -std=c++0x
SOURCES = $(wildcard *.cpp)
OBJECTS = $(SOURCES:.cpp=.o)
HEADERS = $(wildcard *.hpp)
default: ${OBJECTS}
${CXX} ${CXXFLAGS} ${OBJECTS} ${HEADERS] ${SOURCES} -o ${PROGRAM}
clean:
rm ${OBJECTS} ${PROGRAM}

你的default: ${OBJECTS}行告诉make将所有源代码编译成.o文件,所以下一行只需要链接.o,不应该提到源文件:

default: ${OBJECTS}
${CXX} ${CXXFLAGS} ${OBJECTS} -o ${PROGRAM}

我在本地重现了您的问题,此更改使其正常工作。 为了干净起见,您应该使用rm -f这样它就不会抱怨并删除那些在您运行clean时确实存在的对象/程序,而要删除的某些对象/程序不存在。

最新更新