1

我正在使用通过在 Android NDK 中运行 make-standalone-toolchain.sh 脚本生成的交叉编译工具链以及来自下载的 Android NDK 工具链源的 gcc 源文件在 CentOS 上为 Android 构建 gcc。GMP 源代码是通过运行位于 gcc/contrib 文件夹中的 download_prerequisites 脚本获得的。

我指定了--build=x86_64-linux 和--host=arm-linux-eabi,交叉编译工具设置在env变量中,并在运行configure时指定。我已经运行了 ../gcc-4.7/configure,然后 make -d。使用 /bin/sh 构建 gmp 时 make 失败。./gen-fac_ui。无法执行二进制。

具体命令为:./gen-fac_ui $(BITS_PER_MP_LIMB) $(GMP_NAIL_BITS) >mpz/fac_ui.h || (rm -f mpz/fac_ui.h;退出 1)

我猜测执行失败是因为我使用了交叉编译工具,而 gen-fac_ui 二进制文件无法在 CentOS 上运行。我的问题是: 是否有另一种方法可以生成 mpz/fac_ui.h 作为解决方法?

我也试过运行 make -d -i,它成功完成但似乎跳过了构建关键文件......比如 gcc 或 g++

4

1 回答 1

0

简短回答:
我需要本地(即 CentOS)GCC 工具来构建和运行 gen-fac_ui。

长答案: 是我在 OSDev 论坛上的帖子,在那里我基本上问了同样的问题并得到了答案。它还包含我没有为本地 GCC 工具链安装 glibc-devel 的错误(和更正)。

此外,由于我的构建系统的 GCC 的基本版本是 4.4.7,并且我试图跨原生构建 4.7,因此我必须获取可以通过 yum 安装的开发工具集。有关工具集的信息在这里,简单的安装说明在这里

FWIW,我仍然不完全确定我应该如何确定 gen-fac_ui 需要由构建机器的本地 gcc 制作......除了我找不到其他方法来生成 fac_ui.h 和其他标题。

于 2013-10-10T21:25:45.900 回答