[英]makefile: how to specify header files
我正在尝试为我的所有cpp项目编写一个makefile。 从互联网搜索后,我制作了一个makefile,如下所示:
g++11=g++ -std=c++11 -stdlib=libc++
CPPFILES=$(wildcard *.cpp)
OBJFILES=$(CPPFILES:.cpp=.o)
res.out: $(OBJFILES)
$(g++11) -lncurses -o $@ $^ -g
#obj/%.o: %.cpp
%.o: %.cpp
$(g++11) -c -o $@ $< -g
clean:
rm *.o *.out
我试图使用此文件来编译我的cpp项目,并且效果很好。
但是,当我对头文件进行一些更改时,它不再起作用,因为此makefile无法检测到头文件中的修改。
有什么简单的方法可以在makefile中指定头文件?
Ofc我不想一一指定。
首先,您应该了解make的概念。
Make不仅用于编译C ++,它还是一个通用工具,可从其他文件构建产品(文件)。 发出make时 ,它将根据依赖项的文件更改日期检查是否应重建顶级产品。 如果需要重建,首先检查所有依赖项是否应该重建...等等。 这些积木称为规则。
这是一个规则 :
target: dependency1 dependency2 ...
command1 to produce targets
command2
对于CPP项目:
myapp: myapp.cpp myapp.hpp
g++ myapp.cpp -o myapp
更多信息: http : //www.cs.cmu.edu/~gkesden/412-18/fall01/projects/proj1/make/makeintro.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.