【发布时间】:2019-08-03 16:10:24
【问题描述】:
Scons -c 调用 clean build 来清除所有对象、.elf 文件等。我的问题是 scons -c 如何知道要在哪些目录中找到要删除的对象? 如何添加与其他路径一起清理的新路径/文件夹?
谢谢,
【问题讨论】:
Scons -c 调用 clean build 来清除所有对象、.elf 文件等。我的问题是 scons -c 如何知道要在哪些目录中找到要删除的对象? 如何添加与其他路径一起清理的新路径/文件夹?
谢谢,
【问题讨论】:
我的问题是 scons -c 如何知道要在哪些目录中找到要删除的对象?
它知道所有目标的位置,因为它构建了它们,并且清理基本上遵循它用于知道在哪里构建目标的相同规则,因为它知道要清理目标的位置。
如何添加一个新的路径/文件夹,该路径/文件夹也会与其他路径一起被清理?
-c, --clean, --remove
通过删除所有指定了构造命令的目标文件进行清理。还使用 Clean() 函数删除与构造命令关联的任何文件或目录。不会删除 NoClean() 函数指定的任何目标。
这里的关键词是删除所有目标文件。如果您还想清理目录,则需要明确使用Clean function:
Clean(targets, files_or_dirs) , env.Clean(targets, files_or_dirs)
这指定了在使用 -c 命令行选项指定目标时应删除的文件或目录的列表。指定的目标可以是列表或单个目标。多次调用 Clean 是合法的,并创建新目标或将文件和目录添加到指定目标的清理列表中。
多个文件或目录应指定为 Clean 方法的单独参数,或作为列表。 Clean 还将接受任何构造环境 Builder 方法的返回值。
相关的 NoClean 函数会覆盖为同一目标调用 Clean,并且传递给这两个函数的任何目标都不会被 -c 选项删除。
例子:
清理('foo', ['bar', 'baz'])
Clean('dist', env.Program('hello', 'hello.c'))
清洁(['foo','bar'],'something_else_to_clean')在此示例中,安装项目会为文档创建一个子目录。如果项目被卸载,此语句会导致子目录被删除。
清理(docdir, os.path.join(docdir, projectname))
这将获取应该与您要清理的文件或目录相关联的目标,然后当其中一个目标被清理时,它还将清理可能不是目标本身的指定文件和目录。
【讨论】: