<!-- Substituting libraries --> 替换库

# 替换库

现在假设我们有两个 Logisim-evolution 电路，它们应该执行相同的操作。 作为一名教师，您可能让学生完成一项作业：您有一个包含解决方案的文件，但有多个包含他们作业的学生文件。 也许任务是构建一个两位加法器。

我假设我们有两个文件，名为 `master.circ` 和 `query.circ` 。 每个文件都包含一个名为 Adder2 的电路（重要的是要测试的电路命名完全相同），其外观如下。

> `master.circ 中的 Adder2` | `query.circ 中的 Adder2`

正如您所看到的，主电路使用 Logisim-evolution 的内置加法器，而查询电路使用两个子电路，分别代表半加器和全加器（它们本身由简单的门组成）。 就我们的示例而言，查询电路有一个愚蠢的错误：来自半加器的 进位 未连接到全加器。

我们将测试电路构建到不同的文件 `test.circ` 中。 在那里，我们加载 `master.circ` 作为 Logisim 库 | Project | → | Load Library | → | Logisim Library | ，然后我们插入其 2 位加法器作为子电路。 我们可以直接执行该电路以获得完美解决方案所需的输出。

> `java -jar logisim-evolution.jar test.circ -tty table`

但我们希望使用 `query.circ` 而不是 `master.circ` 作为加载的库来执行电路。 最简单的方法是打开 Logisim-evolution 并加载该库； 或者您可以简单地删除 `master.circ` 文件并将 `query.circ` 重命名为 `< b>master.circ` 相反。 但 Logisim 包含一个方便的 `-sub` 选项，可以在会话期间临时用一个文件替换另一个文件，而无需在磁盘上进行任何更改。

> `java -jar logisim-evolution.jar test.circ -tty table -sub master.circ query.circ`

您将看到的输出如下所示； 它当然与我们在 上一节 中看到的不同，因为 `adder2` 通用的库已被替换 在测试电路中， `query.circ` 的错误。

>     00      00      0E0
>     01      00      0E1
>     10      00      EE0
>     11      00      EE1
>     00      01      0E1
>     01      01      0E0
>     10      01      EE1
>     11      01      EE0
>     00      10      EE0
>     01      10      EE1
>     10      10      1E0
>     11      10      1E1
>     00      11      EE1
>     01      11      EE0
>     10      11      1E1
>     11      11      1E0

下一步： 其他验证选项 。