我得到了 2 个包含的头文件,它们都具有相同名称的 typedef。
假设 aaa.h 和 bbb.h。它们来自 2 个不相关的 3rd 方包,我无法控制这 2 个文件,但必须使用它们。我没有直接包含这两个文件,但它们被子包含在顶级头文件中。(即我包括 ah 和 bh 分别包括它们)
由于名称冲突,当它们都包含在内时,我的程序将无法编译。
所以我的临时解决方案是我将 aaa.h 复制到我的源代码树中,只删除了 typedef,称为 myaaa.h。在文件的顶部,我保持“#ifndef AAA_H,#define AAA_H”包装完整,所以当我包含 myaaa.h 时,不会包含 aaa.h,因为 AAA_H 标志已经定义,间接删除了 typedef 冲突。
有没有更聪明的方法来做到这一点,而无需将此类文件(并且我必须对其进行版本控制)添加到我的源代码中?
谢谢!