Tim*_*Tim 13 ubuntu arm gcc apt cross-compilation
我最近安装Ubuntu 18.04, Linux foobar-VirtualBox 4.15.0-23-generic #25-Ubuntu SMP Wed May 23 18:02:16 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
在虚拟机上。我想为带有硬浮点的Cortex-M4F CPU 交叉编译应用程序,因此我已经安装了包gcc-arm-none-eabi
版本15:6.3.1+svn253039-1build1
以及 libnewlib-arme-none-eabi
版本2.4.0.20160527-3
.
由于使用硬浮点数的目标文件与使用软浮点数的库之间存在冲突,因此出现链接器错误。一些研究表明这是一个已知的Ubuntu 18.04 (Bionic Beaver) 问题:
请注意,我确实提供了正确的编译器和链接器标志,并且该项目使用来自GNU ARM Embedded的 Windows 交叉工具链正确构建。我认为在这里粘贴完整的错误是没有意义的。如果有人认为这是必需的,我很乐意编辑这个问题。
根据我的基本理解,我有两种解决方案来获得功能性 GCC ARM 工具链:
gcc-arm-none-eabi
以返回到工作版本gcc-arm-none-eabi
并安装(gcc-arm-embedded
从 PPA安装 gcc-arm-embedded)为了降级,gcc-arm-none-eabi
我必须在我的包管理器中找到以前的版本。我首先用 更新了包列表sudo apt update
,然后输入:
sudo apt 显示 gcc-arm-none-eabi
包:gcc-arm-none-eabi
版本:15:6.3.1+svn253039-1build1
优先级:额外
部分:universe/devel
来源:Ubuntu
维护者:Ubuntu 开发者
原始维护者:Agustin Henze
错误:https://bugs.launchpad .net/ubuntu/+filebug
安装大小:307 MB
依赖:libc6 (>= 2.15)、libgcc1 (>= 1:3.0)、libgmp10、libisl15 (>= 0.15)、libmpc3、libmpfr6 (>= 3.1.3) , libstdc++6 (>= 5), zlib1g (>= 1:1.1.4), binutils-arm-none-eabi
推荐:libnewlib-arm-none-eabi
主页:http : //gcc.gnu.org/
下载大小:24.3 MB
APT 来源:http : //ch.archive.ubuntu.com/ubuntubionic/universe amd64 包
描述:用于ARM Cortex-A/R/M 处理器的GCC 交叉编译
器 用于使用Cortex-M、Cortex-R 和
Cortex-A 处理器的嵌入式ARM 芯片的裸机编译器。
该软件包基于 ARM 提供的 GNU ARM 工具链。
在那里,我没有看到任何以前的版本。我认为它们应该列在这里,但我没有看到。如果我不能提供我想降级到的确切以前的版本,我就不能降级。
我按照上面链接中给出的说明进行操作,这使我获得了以下命令:
sudo apt remove gcc-arm-none-eabi
sudo apt-add-repository ppa:team-gcc-arm-embedded/ppa
sudo apt update
Run Code Online (Sandbox Code Playgroud)
[...] Ign:4 http://ppa.launchpad.net/team-gcc-arm-embedded/ppa/ubuntu bionic InRelease
Get:5 http://security.ubuntu.com/ubuntu bionic-security InRelease [ 83.2 kB]
Err:6 http://ppa.launchpad.net/team-gcc-arm-embedded/ppa/ubuntu bionic Release
404 Not Found [IP: 91.189.95.83 80]
阅读包列表......完成
E:存储库“ http://ppa.launchpad.net/team-gcc-arm-embedded/ppa/ubuntu bionic Release”没有发布文件。
N:无法安全地从此类存储库进行更新,因此默认情况下禁用。
N:有关存储库创建和用户配置详细信息,请参阅 apt-secure(8) 联机帮助页。
sudo apt-install gcc-arm-embedded
Run Code Online (Sandbox Code Playgroud)
读取包列表...完成
构建依赖树
读取状态信息...完成
E:无法定位包 gcc-arm-embedded
基本上,我似乎在访问 PPA 时遇到了问题。我试过apt
switch --allow-unauthenticated
,但它没有改变命令输出。
有没有办法让这两个解决方案中的一个起作用,或者有没有另一种方法可以在 Ubuntu 18.04 上获得功能性 GCC 工具链来为 Cortex-M4F CPU 构建硬浮动应用程序?
(我最近在这个问题上发布了一个 Stack Overflow问题,因为此时我认为这是一个与 Unix 世界不太相关的工具链问题。如果我在这里得到答案,我将关闭它并重定向到这个 Q/一种)
小智 5
您可以从developer.arm.com下载功能工具链,并在删除现有的 gcc-arm-none-eabi 包后手动安装它。
转到该网站,单击“下载”按钮并获取:
gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
。将其保存在您的主目录中。
确保您已卸载旧的 Ubuntu 软件包。
sudo apt remove binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi
Run Code Online (Sandbox Code Playgroud)
在您的主目录中解压新包:
tar -xjvf gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
Run Code Online (Sandbox Code Playgroud)
将新工具链添加到您的路径中:
export PATH=$PATH:/home/(your user)/gcc-arm-none-eabi-7-2018-q2-update/bin/
Run Code Online (Sandbox Code Playgroud)
此时您应该有一个可以工作的 ARM 编译器和工具链。(对于 Unix 新手:如果您关闭终端并打开一个新终端,则必须重新运行该export PATH
语句,以便编译器再次被接收。)
归档时间: |
|
查看次数: |
35940 次 |
最近记录: |