5.10. Expect-5.43.0

Expect 提供了一个与其他交互式程序提供脚本接口的工具。

预计编译时间: 0.1 SBU
所需磁盘空间: 4 MB

5.10.1. 安装 Expect

首先修正一个导致运行 GCC 测试程序失败的 bug:


patch -Np1 -i ../expect-5.43.0-spawn-1.patch

接着修正由于近期 Tcl 更新产生的 bug:


patch -Np1 -i ../expect-5.43.0-tcl_8.5.5_fix-1.patch

接下来,强制 Expect 配置脚本使用 /bin/stty,而不是使用可能在宿主系统中的 /usr/local/bin/stty。这保证我们的测试套件对于最终构造的工具链仍然稳健。


cp -v configure{,.orig}

sed 's:/usr/local/bin:/bin:' configure.orig > configure

现在可以准备编译:


./configure --prefix=/tools --with-tcl=/tools/lib \

  --with-tclinclude=/tools/include --with-x=no

配置选项的含义:

--with-tcl=/tools/lib

这能确保配置脚本能找到临时系统目录下安装的 Tcl,而不是宿主系统可能安装的。

--with-tclinclude=/tools/include

这明确指出了 Tcl 内部头文件的位置。这能防止由于 configure 不能自动寻找到 Tcl 内部头文件导致的配置失败。

--with-x=no

告诉配置脚本不去搜索 Tk (Tcl 的图形界面组件)或 X Window 系统库,两者可能存在于宿主系统,但在临时环境中不存在。

编译它:


make

编译完成之后,如前所述,在本章为了一个临时工具运行测试程序不是强制的。如果要测试 Expect,运行下面命令:


make test

请注意,已知 Expect 的测试程序会在某些不在我们控制范围内的宿主系统下出现测试失败。因此,测试失败也并不奇怪,这不是关键所在。

安装软件包:


make SCRIPTS="" install

配置选项的含义:

SCRIPTS=""

这个选项防止安装 Expect 补充的一些并不需要的脚本。

5.10.2. Expect 的内容

安装的程序: expect
安装的库: libexpect-5.43.a

简单描述

expect

按照一个脚本与其它交互式程序通信。

libexpect-5.43.a

此库文件包含的函数可以让 Expert 作为一个 Tcl 扩展来使用,或直接被 C 或 C++使用(不通过 Tcl)。


Host by Alair