我知道标题很模糊,但我不知道如何简明扼要地描述我的问题。如果你愿意,请编辑它。
目前我的makefile如下所示:
CC = g++
CFLAGS = -Wall -g
TARGET = foobar
SRC_FILES = foo.cpp bar.cpp main.cpp
OBJ_FILES := $(SRC_FILES:.cpp=.o)
$(TARGET): $(OBJ_FILES)
$(CC) $(CFLAGS) $^ -o $@
%.o: %.cpp %.h
$(CC) $(CFLAGS) -c $<
clean:
rm -rf *.o $(TARGET)
问题是这个结构要求main.cpp
有一个main.h
头文件,我实际上没有。我怎么能很好地处理这个?
答案 0 :(得分:5)
GCC(可能还有Clang)可以为你建立一个依赖列表;这样,您只需从源(cpp)文件中创建目标文件:
depend: .depend
.depend: $(SRC_FILES)
rm -f ./.depend
$(CC) $(CFLAGS) -MM $^ -MF ./.depend;
include .depend
%.o: %.cpp
$(CC) $(CFLAGS) -c $<
您可能还会对makedepend
工具感兴趣。