This question already has answers here:
how to include 2 files with same name?
(2个答案)
两年前关闭。
让我给你举个我的问题的例子。假设我有两个目录,dir1和dir2。在每个目录中都有两个文件:dir1/fileA.h&dir1/fileB.h。dir2将有同名文件dir2/fileA.h&dir2/fileB.h,但它们的内容与dir1中的不同。如果我想使用dir1/fileA.h&dir2/fileB.h,就会出现问题。如果我先包含dir1,然后再包含dir2
           INCLUDE_DIRS += \ dir1 \

                             dir2

然后编译器将只引用dir1中的fileA.h和fileB.h,忽略dir2中的文件,如果我将dir2放在dir1之前,则反之亦然。同样,有什么解决方案可以让编译器在dir1中查找fileA.h,而在dir2中查找fileB.h?

最佳答案

不,没有。但是假设你的dir1dir2
有一个公共的基本目录root,这样

   dir1 = the-root/path1
   dir2 = the-root/path2

然后,在-Ithe-root中使用Makefile作为编译选项
   target: source.c
         gcc -Ithe-root source.c ...

并包括在您的C文件中:
   #include "path1/fileA.h"
   #include "path2/fileA.h"

或者你觉得怎么样。

10-06 05:49