arm-linux-gcc踩坑1

2023-05-16

嵌入式实验要用到交叉编译arm-linux-gcc,其中遇到一些问题,记录如下。

1.安装交叉编译器并更新环境:
export PATH=$PATH:/usr/local/arm/4.6.2/bin/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin
source ~/.bashrc时提示:找不到source命令,找到如下解决方案:

https://blog.csdn.net/u013895853/article/details/81676379
普通用户sudo su 和 sudo -s都是切换到root用户,不同的是:

sudo su 环境用的是目标用户(root)的环境
root后再执行。

验证是否生效

arm-linux-gcc –v

解决。
另一篇文章没有验证,也不理解

https://www.cnblogs.com/sewen-H/p/13233530.html

2.编译示例程序:

arm-linux-gcc –g –c main.c

提示:
arm-linux-gcc: error: –g: No such file or directory
arm-linux-gcc: error: –c: No such file or directory
查找发现:

https://www.cnblogs.com/liangning/p/4273383.html
搞了半天,才发现是ubuntu版本的问题。本人的ubuntu是64位,而下载的这些交叉编译器是32位的。因此需要安装ia32-libs库

下面安装32位运行库:

https://blog.csdn.net/wanxuexiang/article/details/83898397
通过下面两条命令进行安装即可:
1、apt-get install lib32ncurses5 ​
2、apt-get install lib32z1

在执行apt-get install lib32ncurses5 ​时报错,

正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
E: 无法定位软件包

尝试另一种办法:

https://blog.csdn.net/lv75543255/article/details/90754684?utm_medium=distribute.pc_relevant_download.none-task-blog-2defaultBlogCommendFromBaidudefault-17.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-2defaultBlogCommendFromBaidudefault-17.nonecas

要在64位多架构Ubuntu系统上运行32位可执行文件,您必须添加i386架构
(1)添加i386架构
sudo dpkg --add-architecture i386
(2)更新源信息
sudo apt update
(3)安装相应的32位库,库名后面加上:i386,比如libc6:i386, libstdc++6:i386,libncurses5:i386
sudo apt install libc6:i386 libstdc++6:i386 libncurses5:i386
(4)如果还需要其他库,请按需安装即可

在执行sudo apt update时报错:

命中:1 http://mirrors.aliyun.com/ubuntu bionic InRelease
命中:2 http://mirrors.aliyun.com/ubuntu bionic-updates InRelease
命中:3 http://mirrors.aliyun.com/ubuntu bionic-backports InRelease
命中:4 http://mirrors.aliyun.com/ubuntu bionic-security InRelease
命中:5 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic InRelease
命中:6 http://ppa.launchpad.net/wireshark-dev/stable/ubuntu bionic InRelease
获取:7 http://packages.ros.org/ros/ubuntu bionic InRelease [4,680 B]
错误:7 http://packages.ros.org/ros/ubuntu bionic InRelease
下列签名无效: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
已下载 4,680 B,耗时 2秒 (2,124 B/s)
正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
有 308 个软件包可以升级。请执行 ‘apt list --upgradable’ 来查看它们。
W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。GPG 错误:http://packages.ros.org/ros/ubuntu bionic InRelease: 下列签名无效: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
W: 无法下载 http://packages.ros.org/ros/ubuntu/dists/bionic/InRelease 下列签名无效: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
W: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。

查找解决方法:

http://t.zoukankan.com/liuzhenbo-p-11032733.html

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6ED91CA3AC1160CD

将其中密钥还为验证不通过的密钥,执行。
结果:

Executing: /tmp/apt-key-gpghome.sS2MmDyFUN/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
gpg: 密钥 F42ED6FBAB17C654:“Open Robotics info@osrfoundation.org”1 个新的签名
gpg: 合计被处理的数量:1
gpg: 新的签名:1

再次执行sudo apt update等命令发现

libc6:i386 已经是最新版 (2.27-3ubuntu1.4)。
libc6:i386 已设置为手动安装。
libncurses5:i386 已经是最新版 (6.1-1ubuntu1.18.04)。
libncurses5:i386 已设置为手动安装。
libstdc++6:i386 已经是最新版 (8.4.0-1ubuntu1~18.04)。
libstdc++6:i386 已设置为手动安装。

方向不对,继续查找解决办法:

https://blog.csdn.net/qq_41547890/article/details/116672321

原因:
从上面这个报错其实也知道原因了,就是在“更新源地址平台上”找不到相应的“lib32ncurses5”软件包。找不到软件包通常是软件包名输入错误,或者说,没有这个软件包了,有些软件包可能会被移除或被其它的软件包替代了等等。

解决方法:
apt-get install lib32ncurses5改为apt-get install lib32ncurses5-dev
运行成功。

还遇到另一问题:

module ‘enum’ has no attribute ‘IntFlag’
在这里插入图片描述

查找:

https://www.cnblogs.com/guohongwei/p/10870053.html

直接卸载:

pip uninstall enum34

没有解决。

https://www.jianshu.com/p/9c8237bb3598

查找之后,路径下并没有enum。

https://www.e-learn.cn/content/python/2181404

查询发现,是PYTHONPATH的设置错误,在.bashrc中存留有以前使用python2时留下的配置,导致python3不能找到正确的enum位置,注释掉bashrc中相关语句后,清空$PYTHONPATH变量即可:

 unset PYTHONPATH 

成功解决。

继续尝试编译。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

arm-linux-gcc踩坑1 的相关文章

随机推荐

  • 四小时Jsp期末作业速成——MyBlog个人博客系统(javaweb:非框架)

    MyBlog个人博客系统 xff08 javaweb 非框架 xff09 目录第一章 系统简介 31 1 背景及意义 31 2 开发目的 31 3 开发环境 3 第二章 系统设计 42 1 系统分析 42 1 1 系统需求分析 42 1 2
  • 【已解决】Ubantu问题记录:在连接网线的情况下ubuntu系统ping网关不通以及无法上网

    问题背景 xff1a 我们的服务器配置了两张在同一网段下的网卡 xff0c 卡 eno4 连接以太网ip xff1a 192 168 2 10 网关192 168 2 1 卡 eno2 ip xff1a 192 168 2 12 网关192
  • ros知识点

    工作空间 一个典型的ROS工作空间目录结构如下 所有ROS程序都必须放置在某个ROS工作空间 workspace 下 xff0c 我们在主目录下创建一个名为catkin ws的ROS工作空间 ROS工作的空间名字可以随便取 xff0c 一般
  • 我有一个IT梦

    介绍 作为一名大二的学生 xff0c 接触计算机基础技术近乎俩年 xff0c 俩年来我愈加发觉计算机是一门发展力很强的学科 它多式多样 xff0c 更像是一种挑战 xff0c 对于好强的我来说 xff0c 越来越着迷计算机的世界 纵然未知的
  • Mac 自动代理切换

    Mac 自动代理切换 背景 xff1a 工作有时需要用goole搜索 xff0c 所以会配置一下公司提供的HTTP和HTTPS代理 xff0c 但是下班之后回到家 xff0c 只有公司内网才能访问代理 xff0c 所以还需要把代理关掉 每次
  • 仅拉取git远程仓库中特定的单个分支

    结论 拉取git远程仓库中特定的单个分支的关键在于 xff1a 调用git clone时候 xff0c 添加 branch选项与 single branch git clone git clone克隆远程仓库时 xff0c 默认会依次做以下
  • Windows10通过网线连接树莓派ubuntu server系统

    Windows10通过网线连接树莓派ubuntu server系统 材料 xff1a 烧录ubuntu server 18 04镜像的树莓派 xff0c 网线一根 xff0c Window10电脑 操作 Windows10通过网线连接树莓派
  • 树莓派安装ROS操作系统并配置VNC连接

    树莓派 4B xff08 2G xff09 的准备工作 一 烧录ubuntu server 18 04 LTS镜像二 ubuntu系统安装桌面三 树莓派开启VNC连接1 使用dconf editor2 开启桌面共享服务3 Windows端下
  • Vscode配置树莓派ROS的开发环境

    树莓派安装ROS系统和远程连接配置我的这篇博客 附上连接 xff1a https blog csdn net weixin 44815966 article details 112697896 开发ros机器人时 xff0c 为了方便开发和
  • ROS操作系统 opencv-python读取摄像头+rviz可视化

    ROS操作系统 opencv python读取摄像头 43 rviz可视化 一 安装opencv python二 opencv读取摄像头三 图片转换为ROS图片格式并且在rviz显示 测试环境 xff1a 树莓派ubuntu 18 04 5
  • Git 报错:Connection closed by remote host. fatal: Could not read from remote repository.

    Git deploy 部署报错 xff1a ssh exchange identification Connection closed by remote host fatal Could not read from remote repo
  • RabbitMQ详解(二):Docker安装RabbitMQ

    一 安装并运行二 其他操作 在Docker上安装部署RabbitMQ方便快捷 xff0c 不需要额外安装Erlang环境 xff0c 所以写该篇文章先来介绍如何在Docker上部署RabbitMQ 一 安装并运行 1 在docker hub
  • android 注解和反射 (入门以及使用)

    先来看一看今天的效果 代码效果 效果不重要 重要的是代码 注解 官方解释 从JDK5开始 Java增加对元数据的支持 xff0c 也就是注解 xff0c 注解与注释是有一定区别的 xff0c 可以把注解理解为代码里的特殊标记 xff0c 这
  • Linux ubuntu安装LLVM12+Clang

    安装之前确保安装cmake3 20以上版本 参考https blog csdn net weixin 42888638 article details 125617062 从官网下载安装包 llvm project 12 0 0 src t
  • 总线?什么是总线?

    近期 有些小朋友问我 xff1a Jing哥啊 xff0c 计算机好多基础我都不懂 xff0c 看编程视频讲到的时候 xff0c 什么数据总线 xff0c 地址总线我都不懂 其实阿Jing以前也有这个困扰 xff0c 一直困扰 xff0c
  • FreeRTOS学习 任务调度

    任务调度 任务调度实现在多个任务之间轮流使用CPU xff0c 他的主要工作分为三个阶段 xff1a 保存当前任务上下文到任务栈选择新任务恢复新任务的上下文 这三个步骤需要在中断服务函数中执行 xff0c 所以要求执行的速度要快 xff0c
  • FreeRTOS学习 信号量

    信号量 FreeRTOS 学习仓库 xff1a https gitee com killerp free rtos study 在深入理解了消息队列后 xff0c 信号量也就很容易学习了 因为信号量就是使用消息队列实现的 信号量是特殊的消息
  • Java-CSS基础选择器

    标签选择器 HTML标签作为标签选择器的名称 p为标签选择器 p 属性 font size 20px 声明 值 类选择器 lt 标签名 class 61 34 类名称 34 gt 标签内容 lt 标签名 gt class为类名称 xff1b
  • Java-CSS层次选择器

    层次选择器 后代选择器 选择器 xff1a E F xff08 两个选择器之间必须要以空格隔开 xff09 功能 xff1a 选择匹配的F元素 xff0c 且匹配的F元素被包含在匹配的E元素内 lt p gt 1 lt p gt lt p
  • arm-linux-gcc踩坑1

    嵌入式实验要用到交叉编译arm linux gcc xff0c 其中遇到一些问题 xff0c 记录如下 1 安装交叉编译器并更新环境 xff1a export PATH 61 PATH usr local arm 4 6 2 bin gcc