g++ 报错 undefined reference to

我在项目中自定义了一些头文件,其中的具体实现都是在对应的 .cpp 中实现的
我在编写一个新头文件 a.h 时,部分实现需要使用到另一个头文件 b.h 中定义的内容,于是我便在 a.h 顶部引入了 b.h,以便我在对应的 a.cpp 文件中能够使用 b.h 中实现的内容
但是当我在构建应用时却报错:undefined reference to XXX
我尝试了很多方法,结果特么当我把包含语句写到 a.cpp 时,编译通过了
我将包含语句写在 a.h 中时,为什么会引发如上的报错?求解答,感激不尽!