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
然后编译器将只引用dir1中的fileA.h和fileB.h,忽略dir2中的文件,如果我将dir2放在dir1之前,则反之亦然。同样,有什么解决方案可以让编译器在dir1中查找fileA.h,而在dir2中查找fileB.h?
然后,在
并包括在您的C文件中:
或者你觉得怎么样。
(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?
最佳答案
不,没有。但是假设你的dir1
和dir2
有一个公共的基本目录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