获取makefile以更改输出可执行文件名

时间:2018-04-27 23:38:00

标签: c++ makefile

我正在为学校作业编写一个makefile,但我遇到了一些问题。我似乎无法使用-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}

1 个答案:

答案 0 :(得分:1)

您的default: ${OBJECTS}行告诉make将所有资源编译成.o个文件,因此下一行只需要链接.o并且不应该提及源文件:

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

我在本地重现了你的问题,这个改变让它发挥了作用。为了清洁,您应该使用rm -f,这样它就不会抱怨并删除在您运行clean时存在的那些,而某些要删除的对象/程序不存在。< / p>