5.12. Expect-5.45

Expect 软件包包含一个用于与其他交互程序进行脚本对话的程序。

预计构建时间: 0.1 SBU
磁盘空间需求: 4.4 MB

5.12.1. 安装 Expect

首先,强制 Expect 的 configure 脚本使用 /bin/stty 而不是可能在宿主上找到的 /usr/local/bin/stty。这将确保我们的测试套件工具在最后构建工具链时可用:

cp -v configure{,.orig}
sed 's:/usr/local/bin:/bin:' configure.orig > configure

现在准备编译 Expect:

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

配置选项的含义:

--with-tcl=/tools/lib

此项确保配置脚本找到安装于临时工具位置的 Tcl 而不是宿主上可能存在的另一个。

--with-tclinclude=/tools/include

此选项直接告诉 Expect 去哪里找 Tcl 的内部头文件。使用这个选项防止出现因为无法自动找到 Tcl 头文件的位置而使 configure 失败的情况。

构建软件包:

make

编译现在完成了。前面讨论过,没有必要在这一章中为临时工具运行测试套件。如果无论如何都要运行 Expect 的测试套件,执行以下命令:

make test

注意 Expect 的测试套件已知会在某些我们无法控制的宿主条件下无法通过。因此这里出现测试套件失败不要惊奇,那无关紧要。

安装软件包:

make SCRIPTS="" install

make 参数的含义:

SCRIPTS=""

此项防止安装不需要的补充 Expect 脚本。

5.12.2. Expect 的内容

安装的程序: expect
安装的库: libexpect-5.45.so

简介

expect

依据脚本与其他交互程序交流

libexpect-5.45.so

包含一些函数,允许 Expect 作为 Tcl 的扩展或者直接从 C 或 C++ 中调用 (不使用 Tcl)