android - 从 Android NDK 在 gcc 中交叉编译 gmp,无法执行 ./gen-fac_ui

标签 android c gcc android-ndk gmp

我正在 CentOS 上使用通过运行 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,然后运行 ​​-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++

最佳答案

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

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

此外,由于我的构建系统的 GCC 基础版本是 4.4.7,而我试图跨原生构建 4.7,我必须获得可以通过 yum 安装的开发人员工具集。有关工具集的信息是 here和简易安装说明是 here

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

关于android - 从 Android NDK 在 gcc 中交叉编译 gmp,无法执行 ./gen-fac_ui,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19183512/

相关文章:

android - 带有建议的多个可搜索 Activity

java - 尝试执行 restclient 请求时找不到合适的 HttpMessageConverter

c - Strcmp 给出段错误

c++ - 使用 gcc4 优于 gcc34 的好处?

c - 为什么 GCC 不优化掉函数序言和结尾 (push ebp; mov ebp, esp; ...; pop ebp)

c - 理解 if (a>=3) 的 gcc 输出

android - 错误选项卡中的 progressDialog

android - 可绘制图像给出 'No resource found..' 但它在文件夹中

c - 具有不同语义的函数调用

c - 该程序不打印C语言数组