ubuntu-android--You are attempting to build on ...

本文详细介绍了在Android开发过程中遇到的64位与32位系统兼容性问题,并提供了有效的解决办法。通过修改main.mk文件和相关Android.mk文件中的代码段,可以解决在32位系统上构建64位环境的问题。
root@tianbaoxing-virtual-machine:/home/Android# make
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.3.1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=GRH78
============================================
Checking build tools versions...
build/core/main.mk:76: ************************************************************
build/core/main.mk:77: You are attempting to build on a 32-bit system.
build/core/main.mk:78: Only 64-bit build environments are supported beyond froyo/2.2.
build/core/main.mk:79: ************************************************************
build/core/main.mk:80: *** stop。 停止。

root@tianbaoxing-virtual-machine:/home/Android#

解决办法:

(1)找到build/core/main.mk文件,找到下面的代码段:

ifeq ($(BUILD_OS),linux)
build_arch := $(shell uname -m)
ifneq (64,$(findstring 64,$(build_arch)))
$(warning ************************************************************)
$(warning You are attempting to build on a 32-bit system.)
$(warning Only 64-bit build environments are supported beyond froyo/2.2.)
$(warning ************************************************************)

将第三行修改成ifneq (i686,$(findstring i686,$(build_arch)))

(2)找到下面的这几个文件:

    /external/clearsilver/cgi/Android.mk

     /external/clearsilver/cs/Android.mk
     /external/clearsilver/java-jni/Android.mk

     /external/clearsilver/util/Android.mk

修改其中的代码段: LOCAL_CFLAGS += -m64

     LOCAL_LDFLAGS += -m64

改成:

LOCAL_CFLAGS += -m32

     LOCAL_LDFLAGS += -m32







转载于:https://my.oschina.net/winHerson/blog/96890

### 解决方案:start-yarn.sh 报错 ERROR: Attempting to operate on yarn resourcemanager as root 在 Hadoop 3.x 版本中,启动 YARN 服务时可能会出现 `ERROR: Attempting to operate on yarn resourcemanager as root` 的错误。这是由于 Hadoop 默认不允许以 `root` 用户身份操作某些组件,例如 ResourceManager 和 NodeManager[^3]。 为了解决此问题,需要修改 Hadoop 安装目录下的 `sbin/start-yarn.sh` 和 `sbin/stop-yarn.sh` 文件,在文件顶部添加以下环境变量定义: ```bash export YARN_RESOURCEMANAGER_USER=root export HADOOP_SECURE_DN_USER=yarn export YARN_NODEMANAGER_USER=root ``` 这些变量的作用是显式指定 ResourceManager 和 NodeManager 的运行用户为 `root`,从而避免权限检查导致的错误[^4]。 此外,如果同时需要启动 HDFS 服务并且遇到类似的权限问题,还需要修改 `sbin/start-dfs.sh` 和 `sbin/stop-dfs.sh` 文件,添加以下环境变量定义: ```bash export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root ``` 这些变量确保 NameNode、DataNode 和 SecondaryNameNode 等组件可以以 `root` 用户身份运行。 ### 注意事项 - 修改完成后,需确保文件具有可执行权限。如果权限不足,可以使用以下命令设置: ```bash chmod +x sbin/*.sh ``` - 如果系统中配置了 `hadoop-env.sh` 或其他全局配置文件,也可以在这些文件中定义上述环境变量,以避免每次修改多个脚本文件[^1]。 - 在生产环境中,建议避免直接以 `root` 用户运行 Hadoop 服务,而是创建专用的 Hadoop 用户并配置适当的权限[^2]。 ```python # 示例代码:验证 start-yarn.sh 是否正常工作 #!/bin/bash export YARN_RESOURCEMANAGER_USER=root export HADOOP_SECURE_DN_USER=yarn export YARN_NODEMANAGER_USER=root sbin/start-yarn.sh ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值