3

如何为 ARM 交叉编译 Expect?

在主机 Ubuntu 机器上从源代码构建它绝对没有问题。但是如果你尝试交叉编译它,configure 脚本会不断地给出以下错误:

checking if WNOHANG requires _POSIX_SOURCE... configure: error: Expect can't be cross compiled

似乎有人在这里发现了如何做到这一点(但他没有详细说明):

我还从这里获取了源代码和补丁:

但是即使成功应用补丁也会收到相同的错误!

我真的很感激这里的一些帮助。

4

1 回答 1

3

这些补丁所做的是遵循您提供的第一个链接中的解释方法:找到 中的所有AC_MSG_ERROR([Expect can't be cross compiled])configure.in,并将它们替换为编码“正确”答案的硬编码行。

所以,要做的第一件事是:如果您在应用补丁后仍然收到该错误,那么补丁一定是错过了一个;你也应该找到它并修复它。

另一件要检查的事情是“它是否已插入”——你是否configure在修补文件后运行了相关的自动工具来正确地重新生成configure.in文件?看起来那些补丁只是 patch configure.in,所以如果你没有进行再生,你就不会改变任何实际运行的东西。

一旦你克服了直接错误,还有一点是你发现的补丁是针对 TimeSys Linux 的(根据名称),它可能与你的系统匹配也可能不匹配——特别是,甚至可能不用于ARM系统。(我看到 TimeSys 现在支持 ARM,但我对它们的熟悉是针对 PowerPC。)因为它用硬编码的答案代替了自动测试,所以这些答案很容易出错。我建议检查补丁中更改的各个行,以确认它们硬编码的答案实际上是正确的。

于 2012-10-26T06:29:50.040 回答