0

如何在我的 makefile 中包含我自己的“.h”文件的重新编译/更新。

这是我的生成文件:

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 的头文件中。

4

2 回答 2

3

将这些文件添加到$(APP). 这将导致 Make 重新链接(即从 构建mainmain.o但不会重新编译(即main.o从和构建main.cpp)。可执行文件的行为不会改变——它不会反映您对标头所做的更改。whatever.hwhatever1.h

您应该将这些文件添加到目标文件的先决条件列表中:

main.o: whatever.h whatever1.h
于 2012-05-08T15:08:49.213 回答
-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)
于 2012-05-08T14:50:26.827 回答