如何为我自己的" .h"重新编译/更新?我的makefile中的文件。
这是我的makefile:
COMPILER = g++
SOURCES = main.cpp
APP = executable/main
OBJECTS = $(SOURCES:.cpp=.o)
all: $(SOURCES) $(APP)
$(APP): $(OBJECTS)
$(COMPILER) $(OBJECTS) -o $@
clean:
rm -rf *.o $(APP)
现在假设我想重新编译项目,但我刚修改了whatever.h和whatever1.h。这些文件包含在main.cpp的标题中。
答案 0 :(得分:3)
将这些文件添加到$(APP)
的依赖项列表中没有任何好处。这将导致Make重新链接(即构建main
main.o
)但不重新编译(即main.o
,main.cpp
和whatever.h
中的whatever1.h
版本。可执行文件的行为不会改变 - 它不会反映您对标题所做的更改。
您应该将这些文件添加到目标文件的先决条件列表中:
main.o: whatever.h whatever1.h
答案 1 :(得分:-1)
在您的应用依赖关系列表中添加标头文件:
COMPILER = g++
SOURCES = main.cpp
HEADERS = whatever.h whatever1.h
APP = executable/main
OBJECTS = $(SOURCES:.cpp=.o)
all: $(SOURCES) $(APP)
$(APP): $(OBJECTS) $(HEADERS)
$(COMPILER) $(OBJECTS) -o $@
clean:
rm -rf *.o $(APP)