例如,我有一个名为1.h的头文件:
#define MY 3
然后我有一个名为myc和1.c和f.c文件的子目录:
$ 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,好的。然后我将1.h改为
#define MY 2
我没有在我的SConstruct中指定CPPPATH = .. /,所以我希望scons可以检测到这种依赖。我再次运行scons,好吧,似乎检测到了这个更改,并且再次编译了.c文件。
我的问题是,CPPPATH隐含无用吗?是scons还是gcc可以检测头文件的变化?
答案 0 :(得分:2)
根据SCons文档,它似乎仅由SCons自动添加
与$ LIBPATH变量一样,$ CPPPATH变量可能是一个列表 目录,或由系统特定路径分隔的字符串 分离字符(POSIX / Linux上的':',';'在Windows上)。无论哪种方式, SCons创建正确的命令行选项,以便以下内容 例如:
Program('hello.c', CPPPATH = ['include', '/home/project/inc'])
Scons CPPPATH DOC