У меня возникают проблемы с назначением программирования для класса CS. На этой неделе мы познакомились с makefiles, но это было едва затронуто. Цель состоит в том, чтобы написать программу для вычисления среднего и суммирования предоставленных пользователем удвоений. Программа отлично работает с g ++, но у меня возникают проблемы с make-файлами.Простой make-файл для C++
Я работаю с 3 файлами cpp: main.cpp, average.cpp, summation.cpp. и 2 заголовочные файлы: average.h и summation.h
Вот один делают файл я пробовал:
CXX = g++
CXXFLAGS = -std=c++0x -Wall -pedantic-errors -g
SRCS = summation.cpp average.cpp main.cpp
OBJS = ${SRCS:.cpp=.o}
HEADERS = summation.h average.h
MAIN = myprog
all: ${MAIN}
@echo Simple compilter named myprog has been compiled
${MAIN}: ${OBJS} ${HEADERS}
${CXX} ${CXXFLAGS} ${OBJS} -o ${MAIN} ${OBJS}
.cpp.o:
${CXX} ${CXXFLAGS} -c $< -o [email protected]
clean:
${RM} ${PROGS} ${OBJS} *.o *~
Ошибки: main.cpp: 31: неопределенная ссылка на avg(double*, int)' main.cpp:32: undefined reference to
сумму (двойной * , int) '
Если я запустил команду g ++ main.cpp summation.cpp average.cpp -o main Затем он будет компилироваться без каких-либо проблем.
Я не уверен, что у меня что-то не в порядке, или если я что-то упустил. Оглядываясь, я нашел много информации, но это, кажется, над моей головой.
Lol! Заголовок ..... –
Вы также должны увидеть команду компилятора make run, которая сгенерировала ошибку. Что это было? – Useless
определите CXX как «echo g ++», затем запустите и наслаждайтесь подсказкой. –