【问题标题】:GCC thinks I'm running x86GCC 认为我正在运行 x86
【发布时间】:2013-06-05 12:44:27
【问题描述】:

我正在尝试在 Linux Mint 15 上编译 Cyanogenmod。并收到以下错误。

host StaticLib: libmincrypt (/home/benji/Source/out/host/linux-x86/obj/STATIC_LIBRARIES/libmincrypt_intermediates/libmincrypt.a)
ERROR: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin/x86_64-linux-ar only run on 64-bit linux
make: *** [/home/benji/Source/out/host/linux-x86/obj/STATIC_LIBRARIES/libmincrypt_intermediates/libmincrypt.a] Error 1
make: *** Waiting for unfinished jobs....
# In case value of PACKAGES is empty.

-

benji@ultranoid ~/Source/prebuilts/tools/gcc-sdk $ ./gcc
ERROR: ./../../gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin/x86_64-linux-gcc only run on 64-bit linux

我不知道是什么原因造成的。我正在安装 64 位。请指教。

benji@ultranoid ~/Source $ uname -p
x86_64

【问题讨论】:

  • 你试过-m选项吗?
  • 导致类似错误:pastebin.com/97ueHpmM
  • 你使用的构建命令是什么?
  • . build/envsetup.sh && brunch viva 我在末尾附加了-m 选项。
  • 那么你解决了这个错误吗?我也得到了这个/

标签: android gcc 64-bit cyanogenmod


【解决方案1】:

解决方法

注释掉 prebuilts/tools/gcc-sdk/gcc 的第 23-38 行

示例:http://pastebin.com/qH0BYcSF

【讨论】:

  • 是的,评论那些检查它对我有用......但我搬到了 ubuntu 10.04......它是最好的......
  • 你不是把第 37 行“否则,选择 32 位”注释掉了吗?
  • 不,因为我是在 x64 环境中编译的。虽然你说得对。我应该不加注释第 25 行,但它仍然适用于这种解决方法。随便吧。
【解决方案2】:

正如here 所指出的,在Android 构建系统中,x32 与x64 主机的测试基于file -L "$SHELL" | grep -q "x86[_-]64" 的输出。换句话说,它测试当前 shell 是否是 64 位二进制文​​件。

所以一个可能的答案是:检查环境变量 $SHELL 的值是否是 shell 可执行文件的有效路径。

  1. 您可以尝试使用chsh

  2. 更改shell
  3. 创建一个指向您最喜欢的 shell 的链接,以便满足 $SHELL。后者对我有用——我只是将 /bin/bash 链接到 $SHELL 指向的位置。

【讨论】:

  • 我遇到了一个问题 - 在我的 ~/.screenrc 中有 shell bash 导致了问题。完整路径 (shell /bin/bash) 修复了该问题。谢谢。
  • 显然SHELL 指向登录shell(在我的情况下,它实际上是指向另一个指向实际二进制文件的符号链接的符号链接)而不是父shell,即从中调用构建脚本的shell .
【解决方案3】:

使用uname -m检查系统。

#file -L "$SHELL" | grep -q "x86[_-]64"

#if [ $? != 0 ];那么

# $SHELL is not a 64-bit executable, so assume our userland is too.

# echo "错误:$MY_TOOL 只能在 64 位 linux 上运行"

#退出1

#fi

改为:

ARCH_OS=uname -m | tr '[:upper:]' '[:lower:]'

if [ "$ARCH_OS" != "x86_64" ] ; then
    echo "ERROR: $MY_TOOL only run on 64-bit linux from uname -m"
    exit 1
fi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多