编译.h文件

时间:2012-05-08 14:42:39

标签: c++ makefile

如何为我自己的" .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的标题中。

2 个答案:

答案 0 :(得分:3)

将这些文件添加到$(APP)的依赖项列表中没有任何好处。这将导致Make重新链接(即构建main main.o)但不重新编译(即main.omain.cppwhatever.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)