【发布时间】:2012-01-07 01:02:02
【问题描述】:
我一直在寻找,一直在寻找,但我找不到我的问题的答案。 我今晚刚开始学习scons,它看起来棒极了!不过我有点困惑。
为了便于开发,我经常喜欢让我的 make 文件构建我的目标,然后运行它,以便我可以一键测试更改。这在 make 文件中非常简单:
run: $(exe)
chmod a+x $(exe)
$(exe)
我发现我可以像这样使用子流程来做到这一点:
import subprocess import os.path
env = Environment();
result = env.Program(target = "FOO", source = "BAR");
location = os.path.abspath(result[0].name)
subprocess.call([location])
但是这个解决方案有一个问题。根据我的实验,scons 不会等到您的程序完成构建后才开始子进程调用,因此您最终会运行旧的可执行文件,或者如果它是在清理后构建的,则会出现错误。
【问题讨论】:
-
@CarlNorum,我刚刚编辑了帖子以显示我的发现。感谢收看!
-
恐怕我对SCONS一无所知。我确实再次修复了您的格式。请阅读发布/编辑页面上的说明。
-
哦,谢谢你这样做。从现在开始,我会正确地做到这一点。
标签: scons