我在编写CS类的编程时遇到了一些麻烦。我们在本周被引入makefiles,但几乎没有涉及到。目标是编写一个程序来计算用户提供的双打的平均和总和。该程序适用于g ++,但我遇到了makefile问题。C++的简单生成文件
我正在处理3个cpp文件:main.cpp,average.cpp,summation.cpp。 和2头文件:average.h和summation.h
下面是一个make文件我曾尝试:
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 然后它会编译时没有任何问题。
我不确定我是否有什么不合适的事情,或者我错过了什么。环顾四周,我发现了很多信息,但似乎超出了我的想象。
大声笑!标题..... –
您还应该看到生成错误的编译器命令make ran。它以前如何? – Useless
将CXX定义为“echo g ++”,然后运行并享受提示 –