层级编译 Hierarchical Builds
在实际工程中,一般都是多级目录结构,不会出现对单一的目录进行构建。本章就开始介绍对于多级目录下,构建脚本的创建。
最顶层的文件为 SConstruct
,里面可以使用 SConscript
来导入其他的编译脚本。例如:
SConscript(['drivers/display/SConscript',
'drivers/mouse/SConscript',
'parser/SConscript',
'utilities/SConscript'])
执行 scons
后,会对这些目录进行查找,然后将这些脚本内容导入到构建过程中,进行后期的构建工作。在导入一个 SConscript
后,还可以再次导入其他的构建脚本文件。可以修改成下面这样:
# SConstruct
SConscript(['drivers/SConscript',
'parser/SConscript',
'utilities/SConscript'])
# drivers/SConscript
SConscript(['drivers/display/SConscript',
'drivers/mouse/SConscript'])
按照下面的文件创建,并填入内容:
// ./hello/hello.c
#include <stdio.h>
extern void hello2(void);
// hello
int main(void)
{
#ifdef HELLO
printf("hello\r\n");