12

交叉编译工具时,您通常必须提供“目标三元组”。给出的例子

  • i686-pc-linux-gnu
  • arm-none-linux-gnueabi
  • powerpc-unknown-linux

等等...

这些三元组,有时实际上是四个组件,具有以下形式:

<CPU>-<MANUFACTURER>[-<KERNEL>]-<OS>

内核是可选的,制造商可以是“未知”或“无”,因为它通常不相关。

我还没有找到一个记录所有可能在此处使用的值的页面。我知道所有组件几乎都是“自由风格”,因此没有官方标准会强制您使用官方标准化列表中的组件。然而,工具设计者和配置脚本编写者希望用户将这些三元组指定到他们的工具/脚本中,因此他们必须牢记一些可能的值,并且应该有类似“非官方列表”工具制造者、脚本编写者和用户可以用作一个参考。

有没有人找到过这样的清单?

4

1 回答 1

4

是的,在 libtool 源代码中有。它被称为平台。应该是不完整吧。还有一个名为的文件在运行config.sub时生成autoreconf。这些可能是最新/完整的。

但根据定义,你所要求的似乎是不可能的。如果某些制造商推出了新的“xyz”CPU,它暂时不会出现在列表中。

那么configure在这种情况下,编剧会做什么呢?我的解决方案如下。我已经autoreconf调用了一个名为的脚本,该脚本在Goat Bookbootstrap.sh所倡导的构建之前设置了一些东西。该脚本使用 sed(好吧,技术上是GNU shtool中的 sed 包装脚本)在将其复制到 AC_CONFIG_AUX_DIR后插入我需要的内容。config.subautoreconf

幸运的是,config.sub文件带有时间戳,因此如果/当“xyz”被添加到“官方”列表中时,您只需测试时间戳即可。然后,您将新的“官方”添加config.sub到您的 tarball 并用于bootstrap.sh测试是否autoreconf正在编写足够近的config.sub. 如果它不够新,请用新的复制旧的。

于 2012-12-12T19:51:36.543 回答