2017-01-15 48 views
1

例如,我有叫1.H一個頭文件:Scons doen't指定CPPPATH,仍然可以檢測到.h依賴項?

#define MY 3 

然後,我有一個子目錄叫myc和1.C和FC文件:

$ cat 1.c 
void f(); 
int main() 
{ 
    return 0; 
} 
$ cat f.c 
#include"../1.h" 
#include<stdio.h> 
void f(){printf("hello %d\n",MY);} 

$ cat SConscript 
Program('my2files',['1.c','f.c']) 

運行SCons,就OK。然後,我改變1.H是

#define MY 2 

我沒有指定CPPPATH = .. /在我的SConstruct,因此,我希望scons的能夠檢測這種依賴性。我再次運行scons,好吧,似乎檢測到了這一變化,再次編譯了.c文件。

我的問題是,是CPPPATH隱式無用?是scons還是gcc可以檢測到頭文件的變化?

回答

2

按SCons的文檔,它似乎自動SCons的只加

像$ LIBPATH變量中,$ CPPPATH變量可能是 目錄清單,或者通過特定的路徑分隔字符串 分隔字符(在Windows上是POSIX/Linux上的';',';')。無論哪種方式, SCons的創建正確的命令行選項,以便以下 例如:

Program('hello.c', CPPPATH = ['include', '/home/project/inc']) 

使用SCons CPPPATH DOC

相關問題