[其他ST产品] 64位Ubuntu 16.04下成功安装arm-none-eabi-gcc交叉编译器的过程

[复制链接]
2532|12
 楼主| 自动化陈稳 发表于 2021-9-29 21:47 | 显示全部楼层 |阅读模式
2018.07.28
刚开始在网上找了很多教程,都是大同小异的步骤:

在官网下载arm-none-eabi-gcc的.tar.bz2压缩包
解压到自定义目录
打开.bashrc和.profie添加环境变量和路径
生效更改
查询编译器是否配置成功
上面的安装步骤我试了很多种都没成功,后来我发现可以通过终端自动下载安装。

 楼主| 自动化陈稳 发表于 2021-9-29 21:49 | 显示全部楼层
下面是安装步骤:
在进行安装前需要一个前置条件,ubuntu的系统自动更新没有被关闭,并且安装了最新推送的系统更新。
 楼主| 自动化陈稳 发表于 2021-9-29 21:49 | 显示全部楼层
1.首先切换到root权限,保险起见再跑一遍更新:

  1. sudo su
  2. apt-get update
  3. apt-get upgrade
 楼主| 自动化陈稳 发表于 2021-9-29 21:50 | 显示全部楼层
2.在root权限下安装失败,可能会提示以下信息:
  1. root@xxj-virtual-machine:/home/xxj# arm-none-eabi-gcc -v
  2. 程序“arm-none-eabi-gcc”尚未安装。 您可以使用以下命令安装:
  3. apt install gcc-arm-none-eabi
  4. root@xxj-virtual-machine:/home/xxj# arm-none-eabi-gcc -v
  5. 程序“arm-none-eabi-gcc”尚未安装。 您可以使用以下命令安装:
  6. apt install gcc-arm-none-eabi
 楼主| 自动化陈稳 发表于 2021-9-29 21:51 | 显示全部楼层
3.按照提示输入apt install gcc-arm-none-eabi命令开始安装:
  1. root@xxj-virtual-machine:/home/xxj# apt install gcc-arm-none-eabi
  2. 正在读取软件包列表... 完成
  3. 正在分析软件包的依赖关系树      
  4. 正在读取状态信息... 完成      
  5. 下列软件包是自动安装的并且现在不需要了:
  6.   libllvm4.0 linux-headers-4.4.0-92 linux-headers-4.4.0-92-generic
  7.   linux-image-4.4.0-92-generic linux-image-extra-4.4.0-92-generic
  8. 使用'sudo apt autoremove'来卸载它(它们)。
  9. 将会同时安装下列软件:
  10.   binutils-arm-none-eabi libnewlib-arm-none-eabi libnewlib-dev
  11.   libstdc++-arm-none-eabi-newlib
  12. 建议安装:
  13.   libnewlib-doc
  14. 下列【新】软件包将被安装:
  15.   binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi
  16.   libnewlib-dev libstdc++-arm-none-eabi-newlib
  17. 升级了 0 个软件包,新安装了 5 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。
  18. 需要下载 65.1 MB 的归档。
  19. 解压缩后会消耗 610 MB 的额外空间。
  20. 您希望继续执行吗? [Y/n] y
  21. 获取:1 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 binutils-arm-none-eabi amd64 2.26-4ubuntu1+8 [2,083 kB]
  22. 获取:2 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 gcc-arm-none-eabi amd64 15:4.9.3+svn231177-1 [17.3 MB]
  23. 获取:3 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 libnewlib-dev all 2.2.0+git20150830.5a3d536-1 [105 kB]
  24. 获取:4 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 libnewlib-arm-none-eabi all 2.2.0+git20150830.5a3d536-1 [14.0 MB]
  25. 获取:5 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 libstdc++-arm-none-eabi-newlib all 15:4.9.3+svn227297-1+8 [31.6 MB]
  26. 已下载 65.1 MB,耗时 28秒 (2,317 kB/s)                                         
  27. 正在选中未选择的软件包 binutils-arm-none-eabi。
  28. (正在读取数据库 ... 系统当前共安装有 240351 个文件和目录。)
  29. 正准备解包 .../binutils-arm-none-eabi_2.26-4ubuntu1+8_amd64.deb  ...
  30. 正在解包 binutils-arm-none-eabi (2.26-4ubuntu1+8) ...
  31. 正在选中未选择的软件包 gcc-arm-none-eabi。
  32. 正准备解包 .../gcc-arm-none-eabi_15%3a4.9.3+svn231177-1_amd64.deb  ...
  33. 正在解包 gcc-arm-none-eabi (15:4.9.3+svn231177-1) ...
  34. 正在选中未选择的软件包 libnewlib-dev。
  35. 正准备解包 .../libnewlib-dev_2.2.0+git20150830.5a3d536-1_all.deb  ...
  36. 正在解包 libnewlib-dev (2.2.0+git20150830.5a3d536-1) ...
  37. 正在选中未选择的软件包 libnewlib-arm-none-eabi。
  38. 正准备解包 .../libnewlib-arm-none-eabi_2.2.0+git20150830.5a3d536-1_all.deb  ...
  39. 正在解包 libnewlib-arm-none-eabi (2.2.0+git20150830.5a3d536-1) ...
  40. 正在选中未选择的软件包 libstdc++-arm-none-eabi-newlib。
  41. 正准备解包 .../libstdc++-arm-none-eabi-newlib_15%3a4.9.3+svn227297-1+8_all.deb  ...
  42. 正在解包 libstdc++-arm-none-eabi-newlib (15:4.9.3+svn227297-1+8) ...
  43. 正在处理用于 man-db (2.7.5-1) 的触发器 ...
  44. 正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ...
  45. 正在设置 binutils-arm-none-eabi (2.26-4ubuntu1+8) ...
  46. 正在设置 gcc-arm-none-eabi (15:4.9.3+svn231177-1) ...
  47. 正在设置 libnewlib-dev (2.2.0+git20150830.5a3d536-1) ...
  48. 正在设置 libnewlib-arm-none-eabi (2.2.0+git20150830.5a3d536-1) ...
  49. 正在设置 libstdc++-arm-none-eabi-newlib (15:4.9.3+svn227297-1+8) ...
  50. 正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ...
 楼主| 自动化陈稳 发表于 2021-9-29 21:52 | 显示全部楼层
4.安装完成后查询版本号:
  1. root@xxj-virtual-machine:/home/xxj# arm-none-eabi-gcc -v
  2. Using built-in specs.
  3. COLLECT_GCC=arm-none-eabi-gcc
  4. COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-none-eabi/4.9.3/lto-wrapper
  5. Target: arm-none-eabi
  6. Configured with: ../src/configure --build=x86_64-linux-gnu --prefix=/usr --includedir='/usr/lib/include' --mandir='/usr/lib/share/man' --infodir='/usr/lib/share/info' --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir='/usr/lib/lib/x86_64-linux-gnu' --libexecdir='/usr/lib/lib/x86_64-linux-gnu' --disable-maintainer-mode --disable-dependency-tracking --mandir=/usr/share/man --enable-languages=c,c++,lto --enable-multilib --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --build=x86_64-linux-gnu --target=arm-none-eabi --with-system-zlib --with-gnu-as --with-gnu-ld --with-pkgversion=15:4.9.3+svn231177-1 --without-included-gettext --prefix=/usr/lib --infodir=/usr/share/doc/gcc-arm-none-eabi/info --htmldir=/usr/share/doc/gcc-arm-none-eabi/html --pdfdir=/usr/share/doc/gcc-arm-none-eabi/pdf --bindir=/usr/bin --libexecdir=/usr/lib --libdir=/usr/lib --disable-libstdc++-v3 --host=x86_64-linux-gnu --with-headers=no --without-newlib --with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r CFLAGS='-g -O2 -fstack-protector-strong' CPPFLAGS=-D_FORTIFY_SOURCE=2 CXXFLAGS='-g -O2 -fstack-protector-strong' FCFLAGS='-g -O2 -fstack-protector-strong' FFLAGS='-g -O2 -fstack-protector-strong' GCJFLAGS='-g -O2 -fstack-protector-strong' LDFLAGS='-Wl,-Bsymbolic-functions -Wl,-z,relro' OBJCFLAGS='-g -O2 -fstack-protector-strong' OBJCXXFLAGS='-g -O2 -fstack-protector-strong' INHIBIT_LIBC_CFLAGS=-DUSE_TM_CLONE_REGISTRY=0 AR_FOR_TARGET=arm-none-eabi-ar AS_FOR_TARGET=arm-none-eabi-as LD_FOR_TARGET=arm-none-eabi-ld NM_FOR_TARGET=arm-none-eabi-nm OBJDUMP_FOR_TARGET=arm-none-eabi-objdump RANLIB_FOR_TARGET=arm-none-eabi-ranlib READELF_FOR_TARGET=arm-none-eabi-readelf STRIP_FOR_TARGET=arm-none-eabi-strip
  7. Thread model: single
  8. gcc version 4.9.3 20150529 (prerelease) (15:4.9.3+svn231177-1)
  9. root@xxj-virtual-machine:/home/xxj#
 楼主| 自动化陈稳 发表于 2021-9-29 21:53 | 显示全部楼层
版本号查询成功,说明安装正确,最后的版本号是:gcc version 4.9.3 20150529 (prerelease) (15:4.9.3+svn231177-1)
 楼主| 自动化陈稳 发表于 2021-9-29 21:53 | 显示全部楼层
ubuntu16.04使用这个方法安装的默认版本号就是4.9.3,落后官方版本比较多,不一定符合实际开发的要求,但是简单不易出错。大多数教程使用的方法可以安装任意版本,但是比较容易出错,对于刚开始接触Linux的萌新来说可能有点吃力。
wowu 发表于 2021-10-14 14:16 | 显示全部楼层
有32位的吗
paotangsan 发表于 2021-10-14 14:18 | 显示全部楼层
这个多少位跟系统是多少位的有关系吗
renzheshengui 发表于 2021-10-14 14:55 | 显示全部楼层
需要安装其他环境吗
wakayi 发表于 2021-10-14 15:12 | 显示全部楼层
是的 我感觉基本上就是大同小异了
xiaoqizi 发表于 2021-10-14 15:17 | 显示全部楼层
这个是内嵌到哪个工具里边的啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

106

主题

1380

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部