makefile 时 出现arm-linux-gcc: Command not found

本文介绍在Ubuntu环境下,解决arm-linux-gcc命令未被识别的问题。通过调整超级用户权限下的环境变量PATH,成功实现了交叉编译器的正确调用。

摘自http://blog.sina.com.cn/s/blog_4670451c0100e1uw.html

折腾了一天,终于搞定了。

ubuntu没有root权限,刚开始用碰到很多麻烦,查了好多资料,终于把arm-linux-gcc:Command not found 的问题解决了。


问题:

sudo tar jxvfcross-2.95.3.tar.bz2

exportPATH=$PATH:/usr/local/arm/2.95.3/bin

使用arm-linux-gcc v 检查交叉编译器安装成功

tar jxvfkernel.tar.bz2

解压之后生成kernel目录

 

sudo make clean

sudo makemenuconfig

sudo make zImage

 

提示错误:

arm-linux-gcc: Command notfound

 

PATH里有/usr/local/arm/2.95.3/bin /usr/local/arm/2.95.3/bin/下有arm-linux-gcc文件,但是make的时候,就是找不到arm-linux-gcc

 

原因:

exportPATH=$PATH:/usr/local/arm/2.95.3/bin

是设置当前用户的PATH,而sudo执行make的时候,使用的是超级用户权限,那也就使用了超级用户的PATH(但是这个PATH里,并没有/usr/local/arm/3.4.1/bin

 

解决方法:

先打开一个超级用户权限的shell

sudo –s

在当前shell下,设置环境变量:

exportPATH=$PATH:/usr/local/arm/2.95.3/bin

 

再进入到kernel目录,make zImage,就可以找到arm-linux-gcc

 
注意上面文章

1、参考ubuntu下交叉编译环境构建安装arm-linux-gcc后,配置了exportPATH,但是执行命令后显示 commond not found。

2、解决办法提示错误:arm-linux-gcc:Command not found

3、注意照搬 export PATH=$PATH:/usr/local/arm/2.95.3/bin 时,记得修改自己电脑对应的路径,如我的是exportPATH=$PATH:/usr/local/arm/3.4.1/bin,别一激动直接copy了。

<think>首先,用户的问题是:解决 arm-openwrt-linux-gcc command not found 错误。根据系统指令,我需要使用中文回答,确保所有数学表达式用$...$或$$...$$格式,并生成相关问题。 回顾引用内容: - 引用[1]:提到权限问题,需要root权限。 - 引用[2]:安装后每次打开终端都需要运行source /etc/profile才能使用命令。 - 引用[3]:配置环境变量,source .bashrc更新。 - 引用[4]:设置环境变量路径或修改Makefile。 用户意图是解决arm-openwrt-linux-gcc命令找不到的错误。这通常是由于环境变量未设置或路径不正确引起的。 结构化回答: 1. **问题分析**:解释错误原因。 2. **解决步骤**:提供逐步解决方案。 3. **验证方法**:如何确认问题解决。 4. **生成相关问题**:在末尾添加相关问题。 确保回答真实可靠: - 基于Linux系统常识:环境变量PATH未包含编译器路径。 - 常见解决方案:添加路径到PATH,source配置文件。 使用中文回答,结构清晰。 步骤: 1. **检查安装路径**:确认编译器是否安装正确。 2. **设置环境变量**: - 编辑.bashrc或.profile文件。 - 添加路径到PATH。 - 运行source命令更新。 3. **测试命令**:运行arm-openwrt-linux-gcc -v检查版本。 4. **处理权限问题**:如果需要,确保有执行权限。 从引用中提取: - 引用[2]:需要source /etc/profile。 - 引用[3]:source .bashrc更新。 - 引用[4]:修改PATH或Makefile。 生成相关问题: 1. 如何永久设置环境变量? 2. arm-openwrt-linux-gcc安装步骤? 3. 其他常见编译器错误? 回答结构: - 开头:简述问题原因。 - 步骤:详细步骤。 - 结尾:验证和相关问题。</think>### 解决 arm-openwrt-linux-gcc "command not found" 错误 当在 Linux 系统(如 Ubuntu)中使用 `arm-openwrt-linux-gcc` 命令,出现 "command not found" 错误,通常是由于环境变量未正确配置或权限问题导致的。该命令是 OpenWrt 项目的 ARM 架构交叉编译器工具链的一部分,用于编译嵌入式系统代码。错误表明系统无法在默认路径中找到该可执行文件。以下我将逐步解释原因并提供可靠解决方案,确保问题彻底解决。 #### 错误原因分析 - **环境变量未设置**:系统变量 `PATH` 未包含编译器工具的安装路径,导致终端无法识别命令[^2][^3]。 - **配置文件未更新**:安装后未运行 `source` 命令更新当前会话的环境变量,每次打开新终端都需要重新加载[^2][^3]。 - **权限问题**:用户可能没有 root 权限或编译器文件缺少执行权限(如引用[1]所述)。 - **安装路径错误**:编译器未正确安装或路径被误删[^4]。 #### 逐步解决方案 按照以下步骤操作,确保每一步都正确执行。假设您已安装 `arm-openwrt-linux-gcc` 工具链(如未安装,请先参考相关文档安装)。 1. **确认编译器安装路径** 首先,找到编译器的实际安装位置。通常路径类似 `/usr/local/arm/` 或 `/opt/toolchain/`。运行以下命令搜索: ```bash sudo find / -name "arm-openwrt-linux-gcc" 2>/dev/null ``` 输出示例:`/usr/local/arm-openwrt-linux-gcc/bin/arm-openwrt-linux-gcc`。记下此路径(例如 `/usr/local/arm-openwrt-linux-gcc/bin`),后续步骤会用到。 2. **设置环境变量** 将编译器路径添加到 `PATH` 变量中,确保系统全局识别命令。 - **编辑配置文件**: 打开用户配置文件 `.bashrc`(针对当前用户)或 `/etc/profile`(针对所有用户)。推荐使用 `.bashrc`: ```bash nano ~/.bashrc ``` - **添加路径**: 在文件末尾添加一行(替换为您的实际路径): ```bash export PATH=$PATH:/usr/local/arm-openwrt-linux-gcc/bin ``` 保存并退出编辑器(在 Nano 中按 `Ctrl+O` 保存,`Ctrl+X` 退出)。 - **更新配置**: 运行 `source` 命令使更改立即生效: ```bash source ~/.bashrc ``` 如果修改了 `/etc/profile`,则运行 `source /etc/profile`[^2][^3]。 3. **检查权限问题** 如果上述步骤后仍报错,可能是权限不足: - **授予执行权限**: 确保编译器文件有可执行权限。运行: ```bash sudo chmod +x /usr/local/arm-openwrt-linux-gcc/bin/arm-openwrt-linux-gcc ``` - **使用 root 权限**: 如果系统限制普通用户权限(如引用[1]所述),尝试在命令前加 `sudo`: ```bash sudo arm-openwrt-linux-gcc -v ``` 或切换到 root 用户:`sudo su`。 4. **验证解决结果** 运行以下命令测试: ```bash arm-openwrt-linux-gcc -v ``` 如果显示版本信息(如 `gcc version x.x.x`),则问题已解决。若仍有错误,检查路径是否正确或重新安装工具链。 #### 注意事项 - **永久生效**:修改 `.bashrc` 或 `/etc/profile` 可确保每次登录自动加载路径,无需重复 `source` 命令[^3]。 - **常见陷阱**: - 路径错误:确保路径精确到 `bin` 目录(例如 `/path/to/toolchain/bin`,而非 `/path/to/toolchain`)。 - 文件冲突:如果系统有其他 ARM 编译器(如 `arm-linux-gcc`),可能需重命名或调整路径优先级[^4]。 - **引用参考**:本方案基于 Linux 环境变量管理最佳实践和相关问题解决经验[^1][^2][^3][^4]。 ### 相关问题 1. 如何永久设置 Linux 环境变量以避免每次重启后失效? 2. 安装 arm-openwrt-linux-gcc 工具链的具体步骤是什么? 3. 在编译 OpenWrt 固件,如何处理其他常见错误(如库文件缺失)?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值