我试图在SCons中使用我的SConscript中的Command
函数,但没有成功。当我从我的项目中创建一个新的SConstruct并在SConstuct中添加相同的行时,它可以工作。
env = Environment()
testing1= env.Command(None,None,'ls -l')
AlwaysBuild(testing1)
我不明白为什么简单的Command
在我的项目SConscript中没有工作,而且在它之外。
我项目的输出是:
scons: done reading SConscript files.
scons: Building targets ...
scons: Nothing to be done for `/myproject/SConscript'.
scons: done building targets.
提前感谢您的帮助。
答案 0 :(得分:4)
SCons是一个" build"系统,所以它希望你有一个像" target"要创建的文件/文件夹(= build)。如果在SConscript中,您将调用命令构建器:
env.Command("mydummy", None, 'ls -l')
(没有AlwaysBuild调用),SCons会尝试构建" mydummy"通过调用命令" ls -l"。它会一遍又一遍地这样做,因为" ls -l"永远不会创建请求的目标文件...除非您将操作更改为" ls -l> mydummy",或文件已经存在。