Проблема при компиляции всего 1 cpp файла: "make: *** Нет правил для цели" build / main.o, необходимых для "исполняемого файла". Stop. " - PullRequest
1 голос
/ 25 января 2020

Я пишу самый базовый c make-файл, который только могу себе представить, просто собираю один основной. cpp. Я попробовал каждое предложение, которое я могу найти, читая подобные вопросы, но я все еще не могу точно определить мою проблему. Распространенной ошибкой является использование пробелов вместо вкладок, я тоже это проверял.

Весь макет проекта выглядит следующим образом:

/bin
/build
/src
  |-----main.cpp
/Makefile

Основной. cpp просто печатает "hello world".

Вот что содержит Makefile:

CXX = g++
WARNINGS = -Wall
OBJ = -c
OUTPUT = -o 
BIN = bin
BUILD = build
SOURCE = src

executable:${BUILD}/main.o
    ${CXX} ${WARNINGS} ${OUTPUT} ${BIN}/program ${BUILD}/main.o
    #c++ -wall -o bin/program src/main.o

main.o: ${SOURCE}/main.cpp
    ${CXX} ${WARNINGS} ${OBJ} ${OUTPUT} ${BUILD}/main.o ${SOURCE}/main.cpp

Как видите, есть инструкции по сборке main.o! Если я не использую переменные makefile и просто пишу команды (закомментированная строка), это работает.

Отсутствует отсутствующий файл. Вот доказательство того, что main. cpp существует enter image description here

1 Ответ

1 голос
/ 25 января 2020

Ваше исправление: измените main.o на $ {BUILD} /main.o, затем команда make сможет связать его

CXX = g++
WARNINGS = -Wall
OBJ = -c
OUTPUT = -o 
BIN = bin
BUILD = build
SOURCE = src

executable:${BUILD}/main.o
    ${CXX} ${WARNINGS} ${OUTPUT} ${BIN}/program ${BUILD}/main.o

${BUILD}/main.o: ${SOURCE}/main.cpp          #<------ watch this line
    ${CXX} ${WARNINGS} ${OBJ} ${OUTPUT} ${BUILD}/main.o ${SOURCE}/main.cpp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...