C++ Makefile不会处理列表中的所有文件

C++ Makefile不会处理列表中的所有文件,c++,makefile,C++,Makefile,这可能是非常基本的,但我现在从GNU Makefiles开始 我这样做给我带来了两个问题: a) 我构建它的方式是只处理第一个文件(file1)。。。。其他文件未被处理(file1,file2,file3) b) 如何添加包含作为依赖项,例如如果包含文件更改以重新编译文件 Makefile: IDIR = include SRCDIR = src OBJDIR = obj CPPFLAGS=-I$(IDIR) -std=c++0x CC = g++ INCLUDES = $(shell c

这可能是非常基本的,但我现在从GNU Makefiles开始

我这样做给我带来了两个问题:

a) 我构建它的方式是只处理第一个文件(
file1
)。。。。其他文件未被处理(
file1
file2
file3

b) 如何添加
包含
作为依赖项,例如如果包含文件更改以重新编译文件

Makefile:

IDIR = include
SRCDIR = src
OBJDIR = obj

CPPFLAGS=-I$(IDIR) -std=c++0x

CC = g++

INCLUDES = $(shell cat $(IDIR)/includes.mk )

PROGS = myprog

OBJS = file1 file2 file3 file4 file5

$(OBJS): 
    $(CC) $(SRCDIR)/$@.cpp -c -o $(OBJDIR)/$@.o $(CPPFLAGS)  


$(PROGS): $(OBJS)
     $(CC)  -o $@ $(CPPFLAGS) $(OBJDIR)/$(OBJS)    

all: $(PROGS)

.PHONY: clean

clean:
    rm -f $(ODIR)/*.o 

感谢您的帮助。

如果在运行make时未指定目标,则它只生成第一个目标。通常,“所有”目标都在顶部。嗯。。。真正与
所有
一起工作,解决我的第一个问题。有没有办法使
all
隐式地出现在makefile上?确保
all
是makefile中的第一个目标。makefile有一些奇怪的地方,比如OBJS的值不是.o文件的列表,但我并不真正理解您的问题。你说你的程序有问题是什么意思?什么样的访问问题?给出明确的示例,说明您正在做什么、正在看到什么以及您希望看到什么,这会很有帮助。此生成文件中有很多错误,您可能希望从一个工作示例开始,并对其进行修改以适合您的项目。如果在运行make时未指定目标,则它只生成第一个目标。通常,“所有”目标都在顶部。嗯。。。真正与
所有
一起工作,解决我的第一个问题。有没有办法使
all
隐式地出现在makefile上?确保
all
是makefile中的第一个目标。makefile有一些奇怪的地方,比如OBJS的值不是.o文件的列表,但我并不真正理解您的问题。你说你的程序有问题是什么意思?什么样的访问问题?给出明确的示例,说明您正在做什么、正在看到什么以及您希望看到什么,这会很有帮助。此生成文件中有很多错误,您可能希望从一个工作示例开始,并对其进行修改以适合您的项目。