C++ 编译.h文件
如何在我的makefile中包含对自己的“.h”文件的重新编译/更新 这是我的生成文件:C++ 编译.h文件,c++,makefile,C++,Makefile,如何在我的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) 假设现在我想重新
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的标题中。在应用程序依赖项列表中添加标题文件:
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)
将这些文件添加到$(APP)
的依赖项列表中没有任何好处。这将导致Make重新链接(即,从main.o
中生成main
),但不会重新编译(即,从main.cpp
中生成main.o
,whatever.h
)。可执行文件的行为不会改变——它不会反映您对头文件所做的更改
应将这些文件添加到目标文件的先决条件列表中:
在源文件和头文件之间添加相关性。makeDependen(来自包imake)可以为您完成这项工作。此外,您可以向C编译器传递命令行选项以生成依赖项文件。你应该!在makefile中包含这个文件。@harper:是的,但这是一种高级技术;OP显然是个新手。
main.o: whatever.h whatever1.h