我正在阅读这个制作教程。在这里,他们在先决条件中提到了头文件。这真的有必要吗?我在没有标题的情况下运行了相同的代码并且它有效。例如,我有以下代码
funcs.h
#ifndef FUNCS_H
#define FUNCS_H
int add(int a, int b);
#endif
Run Code Online (Sandbox Code Playgroud)
funcs.cpp
#include "funcs.h"
int add(int a, int b){
return a+b;
}
Run Code Online (Sandbox Code Playgroud)
main.cpp
#include<iostream>
#include "funcs.h"
int main(){
std::cout << add(1,2) << "\n";
}
Run Code Online (Sandbox Code Playgroud)
Makefile
add : main.o funcs.o
g++ -o add main.o funcs.o
main.o : main.cpp funcs.h
g++ -c main.cpp
funcs.o : funcs.cpp funcs.h
g++ -c funcs.cpp
clean :
rm add main.o funcs.o
Run Code Online (Sandbox Code Playgroud)
即使我从目标中删除头文件funcs.o,main.o它仍然有效。那么,还有其他原因需要放置头文件吗?
makefile 中冒号后面的文件名是目标的依赖项。Make 检查它们,如果任何依赖项比目标新,则使用下一行的命令重新构建目标。
因此,当然,当您从依赖项中删除头文件时,您仍然可以构建和运行,但如果您仅更改头文件中的某些内容,则 make 将无法正确重新构建所有目标。
| 归档时间: |
|
| 查看次数: |
290 次 |
| 最近记录: |