我喜欢这个makefile的逐步说明
Could someone explain this make file?
作为回顾,它如下
CC=g++
CFLAGS=-c -Wall
LDFLAGS=
SOURCES=main.cpp hello.cpp factorial.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=hello
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
.cpp.o:
$(CC) $(CFLAGS) $
有人可以解释如何修改它以适用于不同目录中的源文件吗?
例如,假设目录结构如下
/src/hello/
/src/hello/main.cpp
/src/hello/hello.cpp
/src/hello/factorial.cpp
/src/hello/makefile [THIS makefile]
/src/util/util.h
/src/util/util.cpp
我需要在makefile中修改哪些内容才能让#include "uti.h"
成为main.cpp
?
顺便说一下,我想我已经阅读了一些可以使用VPATH
的地方。有人可以详细说明吗?
编辑 - 有人问我想要util.o
去哪里。我认为合乎逻辑的下一个问题是 - 为什么不建立一个静态库?
我认为一旦我的项目完成,我将构建一个静态库。但是(如果我错了,请纠正我),但静态库只是一堆相关.o
的存档。我不确定.o
有什么关系。我想util.o
吗?我想要math.o
吗?我想要timeSeries.o
吗?或者我想将它们作为单个.a
?我不肯定。因此,在此期间,让我只看到所有个人.o
并将main
链接到他们身上。