我正在编写我能想到的最基本的makefile,只需编译一个main.cpp。我尝试了阅读类似问题后能找到的所有建议,但仍然无法查明问题所在。常见的错误是使用空格而不是制表符,我也对此进行了检查。
整个项目布局如下:
/bin
/build
/src
|-----main.cpp
/Makefile
main.cpp仅显示“ hello world”。
这是Makefile包含的内容:
CXX = g++
WARNINGS = -Wall
OBJ = -c
OUTPUT = -o
BIN = bin
BUILD = build
SOURCE = src
executable:${BUILD}/main.o
${CXX} ${WARNINGS} ${OUTPUT} ${BIN}/program ${BUILD}/main.o
#c++ -wall -o bin/program src/main.o
main.o: ${SOURCE}/main.cpp
${CXX} ${WARNINGS} ${OBJ} ${OUTPUT} ${BUILD}/main.o ${SOURCE}/main.cpp
如您所见,有建立main.o的说明!如果我不使用makefile变量并简单地编写命令(注释行),则它可以工作。
您的解决方法:将main.o更改为$ {BUILD} /main.o,然后使用make命令可以将其关联]
CXX = g++
WARNINGS = -Wall
OBJ = -c
OUTPUT = -o
BIN = bin
BUILD = build
SOURCE = src
executable:${BUILD}/main.o
${CXX} ${WARNINGS} ${OUTPUT} ${BIN}/program ${BUILD}/main.o
${BUILD}/main.o: ${SOURCE}/main.cpp #<------ watch this line
${CXX} ${WARNINGS} ${OBJ} ${OUTPUT} ${BUILD}/main.o ${SOURCE}/main.cpp