Получение make-файла для изменения имени выходного исполняемого файла - PullRequest
0 голосов
/ 28 апреля 2018

Я пишу make-файл для школьного задания и у меня возникли некоторые проблемы. Я не могу получить выходной исполняемый файл с именем, что я хочу, используя флаг -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 голосов
/ 28 апреля 2018

Ваша строка default: ${OBJECTS} указывает make для компиляции всех ваших источников в .o файлы, поэтому в следующей строке нужно только связать .o s и не указывать исходные файлы:

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

Я воспроизвел твою проблему локально, и это изменение заставило ее работать. Для очистки вы должны использовать rm -f, чтобы он не жаловался и удалял те, которые существуют, когда вы запускаете clean, в то время как некоторые объекты / программы для удаления не существуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...