make:***[out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o]Error1

在ubuntu12.04下编译android时,若出现如此错误,那是因为gcc版本太高。


通过gcc-v命令可以发现gcc库在/usr/lib/gcc/i686-linux-gnu目录下,该目录下有当前系统支持的各种版本gcc库 。在安装gcc4.4前该目录下是没有4.4目录的,安装gcc 4.4后该目录下就会多出4.4这个目录,且该4.4目录下有各种相应库文件。

ubuntu 32bit系统下安装gcc 4.4的最好方法是仅用以下两条命令,不需要其它命令,否则编译时可能会出错。

sudo apt-get install gcc-4.4

sudo apt-get install g++-4.4

 


装完后在/usr/bin目录下

$ ls -l gcc*

lrwxrwxrwx 1 root root      7 2011-10-29 09:11 gcc -> gcc-4.6

-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4

-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6

发现gcc 链接到gcc-4.6,  需要将它改为链接到gcc-4.4 :

sudo mv gcc gcc.bak

sudo ln -s gcc-4.4 gcc

 

 

同理

ls -l g++*

lrwxrwxrwx 1 root root      7 2011-08-14 15:17 g++ -> g++-4.6

-rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4

-rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6

需要将g++链接改为g++-4.4:

/usr/bin$ sudo mv g++ g++.bak

/usr/bin$sudo ln -s g++-4.4 g++



再查看gcc和g++版本号:gcc -vg++ -v均显示gcc version 4.4.6 ,说明gcc 4.4安装成功


-------------------------------------------------------------------------------------------------------------------

make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libdvm_intermediates/native/dalvik_system_Zygote.o] Error 1


在dalvik/vm/native/dalvik_system_Zygote.cpp中间增加一个头文件定义#include <sys/resource.h>

#include "Dalvik.h"


#include "native/InternalNativePriv.h"


#include <sys/resource.h>


本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2014-03/97761p2.htm

http://bbs.youkuaiyun.com/topics/390578165

### 解决方案分析 在构建过程中遇到 `Make` 链接错误,通常是由以下几个原因引起的: 1. **依赖库缺失或版本不匹配**:如果项目所需的某些动态链接库未安装或者版本不符合要求,则可能导致链接失败[^1]。 2. **编译器配置不当**:当指定的 Python 可执行文件路径或其他工具链设置有误时,可能会引发类似的错误。例如,在 ROS 环境中使用 `catkin_make` 构建时,Python 版本冲突是一个常见问题[^2]。 3. **CMakeLists.txt 文件中的错误**:项目的 CMake 脚本可能存在问题,比如目标文件定义不清、链接选项遗漏等。 针对上述情况,以下是具体的排查方法和解决方案: --- #### 1. 检查并修复依赖项 确保所有必要的依赖已正确安装。对于特定平台(如 RK3288),可以尝试重新安装基础开发包以及相关支持库。例如: ```bash sudo apt-get update && sudo apt-get install -y build-essential cmake python3-dev libboost-all-dev ``` 此外,还需验证第三方组件(如 Protobuf 或其他自定义模块)是否兼容当前环境。参考 PyTorch 的贡献指南文档说明,确认其构建流程无误[^3]。 --- #### 2. 设置正确的 Python 执行路径 由于提到通过命令行指定了 `/usr/bin/python3` 来规避潜在冲突,因此建议进一步核实该操作的影响范围。具体做法如下所示: ```bash cd .. rm -rf build devel catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3 ``` 此脚本会清理旧数据后再重建工作区结构,从而减少残留缓存干扰的可能性。 注意:若仍然报错,请仔细对比实际使用的解释器位置与预期值之间是否存在偏差;必要情况下切换至虚拟环境中测试效果如何变化。 --- #### 3. 修改核心 Makefile 定义部分 查看提示信息指出的具体行号 (`build/core/executable_internal.mk line 69`) ,定位到对应规则描述内容,并调整参数使其满足最终需求。假设此处涉及外部资源加载逻辑,则需补充完整地址声明方式样例代码片段如下: ```makefile TEMP_FAN_PATH := $(shell pwd)/external/temp_fan.so $(TARGET): $(SOURCES) $(LIBRARIES) @echo Linking $@ g++ -o $@ $^ -L./lib -Wl,-rpath=./lib -ltarget_lib -ldl -lpthread \ -Xlinker --add-needed=$(TEMP_FAN_PATH) ``` 以上示例展示了如何显式引入附加插件的同时保持良好的可移植特性。 --- #### 总结 综合考虑各方面因素之后采取针对性措施能够有效缓解此类难题的发生概率。当然每种情形背后都可能存在独特之处所以务必结合实际情况灵活应对才行!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值