2013-08-14 3 views
0

Я сейчас беру класс 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 в той же папке, и если я вручную скомпилируйте его, он отлично работает. Любые предложения приветствуются.

ответ

0
OBJS = 

Вы ... кажется, что-то здесь не хватает. Как некоторые объекты для сборки.

+0

Если у меня нет отдельного файла .o, но я его вставляю, компилятор все равно находит или создает его? Я немного смущен этим. Я пошел вперед и добавил constructors.o, и он скомпилирован, но я немного потерял почему. Спасибо, кстати! – dannyburrows

+0

Второе правило сообщает 'make' как получить материал в' $ {OBJS} 'из материала в' $ {SRCS} '. Вы можете захотеть использовать '%' хотя, или даже позволить встроенному правилу для файлов .o обрабатывать его. –

Смежные вопросы