今天遇到一个编译问题,比如有三个文件 a.h, b.h, c.h 定义了三个类 a,b, c,并且没有.cpp文件,都是在.h里面实现的,发现c.h 包含了a.h,但说不认识 a。后来看了一下原来是形成了环状包含, a.h, 包含了 b.h, b.h又包含了c.h,所以编译a的时候没有完成就又去编c去了,而c又要用到a,所有编译不过了。我们可以用#pragma message("xxx")来让编译器输出信息,以确定编译顺序,找到问题所在。
明明include了对应的文件,但编译器报错不认识这个类定义
最新推荐文章于 2024-12-30 22:26:55 发布
本文介绍了一个关于环状包含导致的编译错误案例,通过调整头文件的包含顺序和使用#pragmamessage来辅助定位问题,最终解决了由于a.h、b.h和c.h之间的相互依赖导致的编译失败。
1368

被折叠的 条评论
为什么被折叠?



