makefile:如何指定头文件
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 中指定头文件吗?
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
我正在尝试为我的所有 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 中指定头文件吗?
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