64bit ubuntu系统 安装arm-linux-gcc 执行的时候提示“没有那个文件”

本文描述了在64位系统上使用arm-linux-gcc4.3.2交叉工具链时遇到的兼容性问题及解决方案。通过安装特定的32位库,解决了执行arm-linux-gcc-v时出现的“没有这个文件或目录”的错误。

用友善提供的arm-linux-gcc 4.3.2交叉工具链,安装配置好环境变量之后运行arm-linux-gcc -v出错

提示“没有这个文件或目录”

 

按照网上直接安装

sudo apt-get install lsb-core

问题没有解决;

再使用:

sudo apt-get install libc6-i386 libc6-dev-i386

问题解决;

可以正确执行arm-linux-gcc -v

应该是64bit系统跟32bit的GCC的兼容问题。

<think> 我们正在Ubuntu系统安装aarch64-linux-gnu-gcc-9。这是一个交叉编译器,用于在x86_64主机上编译aarch64架构的程序。 在Ubuntu系统中,通常可以通过apt包管理器来安装。我们可以搜索相关的包名。 根据经验,交叉编译器的包名通常为“gcc-版本-架构-cross”或者“gcc-架构-linux-gnu”。对于aarch64-linux-gnu-gcc-9,包名可能是“gcc-9-aarch64-linux-gnu”或者类似的。 我们可以尝试使用以下命令安装: sudo apt install gcc-9-aarch64-linux-gnu 但是,为了确保准确性,我们可以先搜索一下可用的包: apt search aarch64-linux-gnu-gcc-9 或者,我们可以直接安装gcc-aarch64-linux-gnu,这个包通常会安装默认版本,但我们需要指定版本9。 另外,Ubuntu的版本可能会影响可用的包。例如,在较新的Ubuntu版本中,默认的gcc版本可能较高,而gcc-9可能不在官方源中。这时可能需要添加额外的源。 然而,根据Ubuntu的包命名习惯,我们可以尝试安装`gcc-9-aarch64-linux-gnu`。 如果不到,我们可以尝试安装`gcc-aarch64-linux-gnu`,然后查看它安装的版本,或者使用`gcc-version-aarch64-linux-gnu`的形式。 另外,还有一个常见的包是`crossbuild-essential-arm64`,它可能会包含aarch64的交叉编译工具链,包括gcc和g++等。 因此,我们可以有两种方法: 方法1:安装特定版本的交叉编译器 sudo apt install gcc-9-aarch64-linux-gnu 方法2:安装交叉编译基础包(可能会安装默认版本,不一定是gcc-9) sudo apt install crossbuild-essential-arm64 如果用户明确需要gcc-9,那么方法1是首选。如果方法1的包不存在,我们可以尝试添加Ubuntu的toolchain源(如Ubuntu Toolchain PPA)来安装gcc-9的交叉编译器。 但是,请注意,交叉编译器的版本和主机的Ubuntu版本有关。例如,Ubuntu 20.04(Focal)的官方源中包含了gcc-9-arm64-cross(但实际上包名可能略有不同)。 让我们先尝试用方法1,如果不行再考虑其他方法。 步骤: 1. 更新包列表:sudo apt update 2. 搜索包:apt search gcc-9-aarch64 3. 如果到合适的包,则安装。 如果不到,我们可以尝试搜索: apt search aarch64-linux-gnu-gcc-9 或者,我们可以安装gcc-aarch64-linux-gnu,然后通过安装gcc-9-multilib(这个不对)或者寻其他方式。 实际上,在Ubuntu中,交叉编译器的包名通常为`gcc-<version>-<target>`,其中target为aarch64-linux-gnu,所以包名应该是:gcc-9-aarch64-linux-gnu。 在Ubuntu 20.04上,我们可以通过以下命令安装: sudo apt install gcc-9-aarch64-linux-gnu 但是,在Ubuntu 22.04中,默认的gcc版本是11或12,可能没有gcc-9的交叉编译器。这时候可能需要添加较旧的源或者使用其他方法。 如果用户需要gcc-9,但当前Ubuntu版本没有提供,可以考虑从源码编译,但这比较复杂。 因此,我们首先推荐使用包管理器安装,如果不行再考虑其他方案。 另外,安装完成后,可执行文件的名字通常是`aarch64-linux-gnu-gcc-9`,我们可以通过终端输入该命令检查。 所以,总结步骤: 1. 更新包列表: sudo apt update 2. 尝试安装: sudo apt install gcc-9-aarch64-linux-gnu 3. 如果上一步失败,尝试搜索可用的包: apt-cache search aarch64 gcc-9 4. 如果不到,可以尝试安装crossbuild-essential-arm64,然后查看安装gcc版本(可能不是9): sudo apt install crossbuild-essential-arm64 安装后,使用`aarch64-linux-gnu-gcc --version`查看版本。 5. 如果必须要求gcc-9,且系统没有,可以考虑添加PPA或者从源码编译。但是源码编译比较复杂,这里不展开。 6. 安装成功后,可以通过命令`aarch64-linux-gnu-gcc-9 --version`来验证。 注意:在安装交叉编译器时,通常会自动安装对应的依赖,如binutils等。 另外,如果用户需要同时安装g++,可以安装g++-9-aarch64-linux-gnu。 因此,我们按照上述步骤进行操作。 最后,生成相关问题。 </think> ### 在Ubuntu系统安装 aarch64-linux-gnu-gcc-9 的方法 以下是详细的安装步骤: #### 方法1:通过APT直接安装 1. **更新软件包列表** ```bash sudo apt update ``` 2. **安装工具链** ```bash sudo apt install gcc-9-aarch64-linux-gnu g++-9-aarch64-linux-gnu ``` 3. **验证安装** ```bash aarch64-linux-gnu-gcc-9 --version ``` 输出应显示类似: `aarch64-linux-gnu-gcc-9 (Ubuntu 9.x.x-x) 9.x.x` > ⚠️ **注意**: > - 此方法适用于 Ubuntu 20.04/22.04,但官方源可能只提供较新版本(如 gcc-11/12) > -提示 `E: Package 'gcc-9-aarch64-linux-gnu' not found`,请尝试方法2 --- #### 方法2:添加Toolchain源安装(推荐) 1. **安装依赖** ```bash sudo apt install build-essential ``` 2. **添加Ubuntu Toolchain PPA** ```bash sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa sudo apt update ``` 3. **安装指定版本** ```bash sudo apt install gcc-9-aarch64-linux-gnu ``` 4. **配置备选链接(可选)** ```bash sudo update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-9 90 ``` --- #### 方法3:手动下载.deb包 若上述方法失败: 1. 访问 [Ubuntu Packages](https://packages.ubuntu.com/) 搜索 `gcc-9-aarch64-linux-gnu` 2. 下载对应架构(通常是 `amd64`)的 .deb 文件 3. 安装: ```bash sudo dpkg -i gcc-9-aarch64-linux-gnu_*.deb sudo apt install -f # 修复依赖 ``` --- ### 验证交叉编译器 编译测试程序: ```bash echo 'int main(){return 0;}' > test.c aarch64-linux-gnu-gcc-9 test.c -o test file test # 应显示:ELF 64-bit LSB executable, ARM aarch64 ``` --- ### 常见问题解决 | 问题 | 解决方案 | |------|----------| | `未到命令` | 检查是否安装成功,或尝试完整路径 `/usr/bin/aarch64-linux-gnu-gcc-9` | | 依赖错误 | 运行 `sudo apt --fix-broken install` | | 旧版Ubuntu支持 | 尝试 `sudo apt install gcc-aarch64-linux-gnu=4:9.3.0*` | > 📌 **提示**: > GCC 9 是较旧版本,建议优先使用系统默认版本(如 `sudo apt install gcc-aarch64-linux-gnu`)。若必须使用 GCC 9,方法2成功率最高。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值