Я сейчас беру класс C++ и в стремлении охватить CS, я установил Linux Mint 15 (Olivia) и проходил домашнюю работу и лекции в командной строке и через vim. Мы недавно перешли makefile (s), и у меня возникла проблема с g ++. Моя Makefile выглядит следующим образом:makefile g ++: фатальная ошибка: нет входных файлов
CXX = g++
CXXFLAGS += -pedantic-errors
CXXFLAGS += -g
OBJS =
SRCS = constructors.cpp
HEADERS =
#target: dependencies
# rule to build
#
constructors: ${OBJS} ${HEADERS}
${CXX} ${LDFLAGS} ${OBJS} -o constructors
${OBJS}: ${SRCS}
${CXX} ${CXXFLAGS} -c $(@:.o=.cpp)
Когда я бегу:
make constructors
я получаю следующее сообщение:
g++ -o constructors
g++: fatal error: no input files
compilation terminated.
make: *** [constructors] Error 4
У меня есть constructors.cpp в той же папке, и если я вручную скомпилируйте его, он отлично работает. Любые предложения приветствуются.
Если у меня нет отдельного файла .o, но я его вставляю, компилятор все равно находит или создает его? Я немного смущен этим. Я пошел вперед и добавил constructors.o, и он скомпилирован, но я немного потерял почему. Спасибо, кстати! – dannyburrows
Второе правило сообщает 'make' как получить материал в' $ {OBJS} 'из материала в' $ {SRCS} '. Вы можете захотеть использовать '%' хотя, или даже позволить встроенному правилу для файлов .o обрабатывать его. –