嵌入式实验要用到交叉编译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

成功解决。

继续尝试编译。

arm-linux-gcc踩坑1相关推荐

  1. Ubuntu12.4 64位 安装 arm linux gcc 4.3.2

    一.下载arm linux gcc 4.3.2 http://pan.baidu.com/share/link?shareid=1575352696&uk=2754759285&fid ...

  2. Linux Centos8踩坑

    从win10安装双系统Centos8后踩坑 我在安装好centos8后,然后转身想回去win10,结果一看win10没了,百度说什么引导问题,可是没有详细的操作,后来问了一个之前安装过win10加ce ...

  3. Linux内核踩坑笔记

    systemtap embedded C踩坑笔记戳这: https://blog.csdn.net/qq_41961459/article/details/103093912 task_struct的 ...

  4. arm linux gcc 4.6.3,编译gcc-4.6.3

    编译gcc-4.6.3 准备 下载GCC 源码包 : gcc-4.6.3.tar.bz2 下载GCC 依赖包: gmp-5.0.4.tar.bz2, mpfr-3.1.0.tar.bz2 ,mpc-0 ...

  5. centos arm linux gcc,CentOS安装arm-linux-gcc交叉编译器

    (注:首先需要明确需要安装centos系统的位数,即是32位的还是64位的.) 1.下载并解压文件:下载arm-linux-gcc-4.4.3.tgz到任意的目录下,进入这个文件夹 输入命令:# ta ...

  6. amd和arm安装ffmpeg踩坑报错处理

    一.amd安装ffmpeg(yum安装) 系统版本:CentOS Linux release 7.2.1511 (Core) 内核版本:3.10.0-862.el7.x86_64 #1 SMP Fri ...

  7. arm linux gcc fpic,【待整理】Gcc中编译和链接选项 -fpic -fPIC -fpie -fPIE -pie的含义

    [待整理]Gcc中编译和链接选项 -fpic -fPIC -fpie -fPIE -pie的含义 -fpic Generate position-independent code (PIC) suit ...

  8. arm linux gcc交叉编译,arm-linux-gcc交叉编译器安装

    在网上下载arm-linux-gcc-4.4.3.tar.gz. 1.解压#tar -zxvf arm-linux-gcc-4.4.3.tar.gz 2.打开解压目录,将FriendlyARM文件夹拷 ...

  9. yum arm linux gcc 4.8,Linux-使用 yum 升级 gcc 到 4.8

    wget http://people.centos.org/tru/devtools-2/devtools-2.repo mv devtools-2.repo /etc/yum.repos.d yum ...

  10. cc arm linux gcc,(80分请教):armcc 与 arm-elf-gcc的区别?

    以下贴的是我在两者转换时常用的一个文件,有兴趣就看一下,嫌麻烦就去google一下,应该有相关的转换方法.我没找过.这些不全,其他的是一个宏文件,UE下用的,没法转成txt文件. ARM ASM    ...

最新文章

  1. RADStudio连接MySQL_使用FireDac(Delphi)在Firebird中创建数据库
  2. mysql数据库二级233_MySQL数据库开发必备常识
  3. [YTU]_2444( C++习题 对象转换)
  4. Windows服务器上Mysql为设置允许远程连接提示:not allowed to connect to this MySQL server
  5. tomcat如何增大并发_Tomcat 7最大并发连接数的正确修改方法
  6. 过年前谈个恋爱很过分吗?
  7. Java 给编译器看的注释--Annotation
  8. 聊聊excel生成图片的几种方式
  9. CSS 让数字滑动显示
  10. 在Windows2003 SP2上安装VS2005SP1遇到的问题
  11. LWIP的UDP相关API
  12. dubbo调用超时回滚_微服务痛点基于Dubbo + Seata的分布式事务(AT模式)
  13. 人才第一!英伟达大幅扩大深度学习学院(DLI)规模
  14. JSK-18 跳跃游戏【基础】
  15. 一步一步asp.net_三层构架总结
  16. 数字通信系统的组成框图
  17. 相位测试音频mp3_音频与相位的关系
  18. 【八方位云台控制器】
  19. android渗透测试工具drozer,利用drozer进行Android渗透测试
  20. Ubuntu 部署Django, Wagtail,Postgres, Nginx, Gunicorn,Supervisor

热门文章

  1. pk 打包文件_【旅行】同样是旅行,为啥中国人喜欢拉行李箱,老外喜欢背大包?附干货:行李打包锦囊...
  2. win10 加快开机速度
  3. android 图标的格式,Android应用图标适配
  4. bitbake的原理介绍, 使用方法, 编译脚本的编写方法
  5. 服务器server怎么显示后缀名,window7系统怎么显示文件后缀名(图文)
  6. 微信Android热补丁方案Tinker
  7. QQ能上网页打不开解决办法
  8. git pull更新不到最新代码
  9. dnspod.cn 动态域名客户端
  10. 14-CompletableFuture异步编排