C++ Makefile不会处理列表中的所有文件
这可能是非常基本的,但我现在从GNU Makefiles开始 我这样做给我带来了两个问题: a) 我构建它的方式是只处理第一个文件(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
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文件的列表,但我并不真正理解您的问题。你说你的程序有问题是什么意思?什么样的访问问题?给出明确的示例,说明您正在做什么、正在看到什么以及您希望看到什么,这会很有帮助。此生成文件中有很多错误,您可能希望从一个工作示例开始,并对其进行修改以适合您的项目。