【问题标题】:Scons -c commandscons -c 命令
【发布时间】:2019-08-03 16:10:24
【问题描述】:

Scons -c 调用 clean build 来清除所有对象、.elf 文件等。我的问题是 scons -c 如何知道要在哪些目录中找到要删除的对象? 如何添加与其他路径一起清理的新路径/文件夹?

谢谢,

【问题讨论】:

    标签: python build scons


    【解决方案1】:

    我的问题是 scons -c 如何知道要在哪些目录中找到要删除的对象?

    它知道所有目标的位置,因为它构建了它们,并且清理基本上遵循它用于知道在哪里构建目标的相同规则,因为它知道要清理目标的位置。


    如何添加一个新的路径/文件夹,该路径/文件夹也会与其他路径一起被清理?

    来自SCons man page

    -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))

    这将获取应该与您要清理的文件或目录相关联的目标,然后当其中一个目标被清理时,它还将清理可能不是目标本身的指定文件和目录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多