【发布时间】:2021-05-12 10:37:05
【问题描述】:
注意:与其他问题不同,这个问题缺少 obj 文件而不是 cpp 文件
我有一个名为 /Profiler 的目录 得到以下文件:
- Main.cpp
- Draw.cpp
- Draw.h(用于两个 cpp 文件)
- 生成文件
我创建了以下 Makefile:
CC := g++
CCOPTS=-Wall -Wextra -O3 -std=c++17
Main_DEP_OBJ := Main.o Draw.o
Header:=Draw.h
all: main
%.o: %.C DEPS $(Header)
$(CC) ${CCOPTS} -c -o $@ $<
Main: $(Main_DEP_OBJ)
${CC} ${CCOPTS} -o main $^
clean:
rm -f Main *.o
在 Ubuntu 中使用 make 命令给我这个错误:
no rule to make target 'Main.o', needed by 'Main' . Stop.
【问题讨论】:
-
确保缩进是制表符而不是空格。
-
是的,在发布 Q 之前已经检查过了,我认为这是一个缩进问题,但事实并非如此。
-
您发布的makefile不包含
Main目标,因此如果您尝试构建它,它会输出一个完全不同的错误(它会输出no rule to make target 'main' needed by 'all' . Stop。所以你是要么不使用这个makefile,或者你从makefile中截断了一些东西。无论如何,%.o : %.cpp模式规则可以解决你的问题,只要makefile可以看到Main.c。
标签: c++ linux ubuntu makefile game-development