【发布时间】:2012-09-16 14:10:32
【问题描述】:
我有这个 Makefile:
CFLAGS = -c -Wall
CC = g++
EXEC = main
SOURCES = main.cpp listpath.cpp Parser.cpp
OBJECTS = $(SOURCES: .cpp=.o)
EXECUTABLE = tp
DIR_SRC = /src/
DIR_OBJ = /obj/
all: $(SOURCES) $(OBJECTS)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(CFLAGS) $(OBJECTS) -o $@
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
clean:
rm $(OBJECTS) $(EXECUTABLE)
注意这一点:
- 我在目录“.”中。其中包含生成文件
- 文件夹“./src”已存在,并包含所有 .h 和 .cpp 文件
- 文件夹“./obj”不存在,我想让makefile创建它并将所有的.o放在那里
我得到的错误是:
No rules to build "main.cpp", necessary for "all". Stopping.
救命!
【问题讨论】:
-
你定义了
DIR_SRC,你再也没有提到它,所以Make不知道去那里看。这是否足够,或者更多建议会有所帮助? -
好的,所以我修改了这个:all: $(DIR_SRC)$(SOURCES) $(OBJECTS),仍然不起作用。
-
也许您需要调查 VPATH?
-
如果你能告诉我我的 Makefile 出了什么问题,那真的很有帮助:(