GCC认为我正在运行x86

问题描述 投票:3回答:3

我正在尝试在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
android gcc 64bit cyanogenmod
3个回答
6
投票

解决方法

评论prebuilts / tools / gcc-sdk / gcc的第23-38行

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


4
投票

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

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

  1. 您可以尝试使用chsh或更改shell
  2. 创建一个指向您最喜欢的shell的链接,以便$ SHELL满意。后者为我做了伎俩 - 我只是将/ bin / bash链接到$ SHELL指向的地方。

0
投票

use uname -m to check system.

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

#if [$? != 0];然后

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

#echo“ERROR:$ MY_TOOL只在64位linux上运行”

#退出1

#fi

changed to:

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
© www.soinside.com 2019 - 2024. All rights reserved.