我在編寫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 ++」,然後運行並享受提示 –