代码之家  ›  专栏  ›  技术社区  ›  Hind Forsum

scons env.command()未按预期工作,未执行任何命令

  •  0
  • Hind Forsum  · 技术社区  · 6 年前

    我有一个简单的sconstruct文件,如下所示:

    import os,sys
    env = Environment()
    
    env.Command([], [], "echo abc")
    

    我预计这将输出“abc”,但实际上,没有额外的打印内容,屏幕输出是:

    $scons
    scons: Reading SConscript files ...
    scons: done reading SConscript files.
    scons: Building targets ...
    scons: `.' is up to date.
    scons: done building targets.
    

    那我该怎么修呢?谢谢。

    1 回复  |  直到 6 年前
        1
  •  1
  •   bdbaddog    6 年前

    因为你已经调用了一个没有源和目标的构建器,所以它永远不会过时,因此也不会运行。

    所以你希望它马上就跑,在这种情况下你应该使用 Execute()

    env = Environment()
    env.Execute("echo abc")
    

    或者只是

    Execute("echo abc")
    

    后者产生

    $ scons
    scons: Reading SConscript files ...
    echo abc
    abc
    scons: done reading SConscript files.
    scons: Building targets ...
    scons: `.' is up to date.
    scons: done building targets.