如何使编译器仅搜索include目录中的特定文件,并排除该特定目录中的其余文件

时间:2017-11-09 06:45:47

标签: c++ linux makefile include

让我举一些我的问题的例子。假设我有两个目录,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

然后编译器将引用fileA.h和amp;仅在dir1中的fileB.h,如果我将dir2放在dir1之前,则忽略dir2中的文件,反之亦然。同样,是否有任何解决方案使编译器在dir1中查找fileA.h但在dir2中查找fileB.h?

1 个答案:

答案 0 :(得分:0)

不,没有。但假设您的window.onload = startup; var bingoNumber = []; // contains all generated numbers function startup(){ document.getElementById("button").onclick = clickMe; } function newNumber(){ // generate a new number return Math.floor((Math.random() * 9) + 1); } function clickMe(){ // if bingoNumber contains all possible values, don't run the rest // change this to however you want to terminate it if(bingoNumber.length==9){ return false; } var num; // number to add to the array // generate a new number until it is unique for(num=newNumber();bingoNumber.indexOf(num)>=0;num=newNumber()); // add the unique number in the beginning of the array bingoNumber.unshift(num); // display last generated value document.getElementById("display").innerHTML = bingoNumber[0]; // display all generated value document.getElementById("row").innerHTML = bingoNumber; } dir1 有一个共同的基目录dir2,例如

root

然后,在 dir1 = the-root/path1 dir2 = the-root/path2

中使用-Ithe-root作为编译选项
Makefile

并包含在您的C文件中:

   target: source.c
         gcc -Ithe-root source.c ...

或者你想要的任何东西。