【问题标题】:From GNU Make to Scons从 GNU Make 到 Scons
【发布时间】:2017-04-27 11:12:57
【问题描述】:

Scons 中的“SConstruct”文件看起来如何 以下代码在 GNU Make 中做了什么?

target: dependency0 dependency1
     shell command 1  # Not java, cc or the like
     shell command 2
     shell command 3

【问题讨论】:

  • 你做了多少作业?你读过教程吗?手册页?我认为您想知道的大部分内容都在那里解决...
  • 如果没有更具体的例子,这很难回答。如果它不是 java 或 C/C++,它是什么?根据构建的类型,可能需要不同的方法...
  • @skyking:我需要在 Scons 中编写一个小示例构建系统——除其他外——并且想花一些时间在谷歌上搜索答案。这不应该被认为是不道德的。如果你知道答案,为什么你不愿意马上得到 25 点声望?
  • @Frank-ReneSchäfer 我并不是说问 stackoverflow 而不是 google 是不道德的。我想检查的是您阅读了多少官方文档,我至少认为“用户指南”(scons.org/doc/production/HTML/scons-user/index.html)是强制性的,但手册页(scons.org/doc/production/HTML/scons-man.html)也是一个很好的资源。我认为尤其是“用户指南”,因为它包含了人们应该了解的关于 SCons 的内容,我认为它也包含了这些信息。

标签: makefile gnu-make scons


【解决方案1】:

我建议您至少阅读User Guide。它包含对SCons 的介绍,这是每个 SCons 脚本编写者都需要了解的内容。

特别是Command builder,它允许您编写具有指定先决条件、目标和操作的规则。动作本身可以是一个 shell 命令。它可能没有说的是您可以提供一个操作列表,这意味着它们是按顺序执行的(就像 make 一样)。这将我们带到 SCons 等效项:

Command("target", ["dependency0", "dependency1"], [
       "shell command 1",
       "shell command 2",
       "shell command 3",
       ])

还有一些特殊变量可用于扩展命令的目标和来源,但在用户指南中有说明(在手册页中有更详细的说明)。

【讨论】:

  • 感谢您为我节省了很多时间!虽然 SCons 似乎是一个很棒的构建系统,但当时我并不打算深入研究它。我只需要提供一个关于如何将 SCons 与 HWUT 单元测试框架一起使用的小演示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-05
  • 2010-12-17
  • 1970-01-01
  • 2019-03-11
  • 2023-01-20
  • 2015-08-17
  • 2015-05-09
相关资源
最近更新 更多