在C+中省略-I的目录+; 我使用C中的第三方框架,C++中的代码使用API。我的Makefile使用-iframew\u direcroty/include作为包含文件的基础。

在C+中省略-I的目录+; 我使用C中的第三方框架,C++中的代码使用API。我的Makefile使用-iframew\u direcroty/include作为包含文件的基础。,c++,c,C++,C,为了能够使用API,我已经使用 extern "C" { #include <subdir/file_name.h> } extern“C” { #包括 } 现在,第三方供应商在代码库中引入了一个额外的目录,因此我面临编译中断。我需要能够对我的g++说:不要包括来自framework\u目录/include/shared目录的文件,而是包括来自framework\u目录/include目录的文件 我在g++手册页中找不到这样的选项。有什么想法吗?重命名您自己的标题/目录

为了能够使用API,我已经使用

extern "C" 
{
    #include <subdir/file_name.h>
}
extern“C”
{
#包括
}
现在,第三方供应商在代码库中引入了一个额外的目录,因此我面临编译中断。我需要能够对我的g++说:不要包括来自framework\u目录/include/shared目录的文件,而是包括来自framework\u目录/include目录的文件


我在g++手册页中找不到这样的选项。有什么想法吗?

重命名您自己的标题/目录。您也可以将第三方头复制到其他位置,并通过这种方式省略麻烦的子目录,但头的相互依赖性可能会使解决方案迟早也会中断。请查看。它将给出一个从MakeFile中排除文件或目录的想法。@VikramDattu:问题是忽略头文件,而不是源文件。基于Makefile的解决方案不起作用。我不太明白。如果您说
-Iframework\u directory/include
,编译器将在那里找到一个头并包含它。只是不要告诉他(通过
-I
-include
或类似选项)查看
framework\u目录/include/shared
。但是,如果
framework_目录/include
中的头文件包含
#include
指令,则无法避免包含该文件IMHO。