首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$arm-无-eabi-gcc-版本错误

$arm-无-eabi-gcc-版本错误
EN

Unix & Linux用户
提问于 2021-07-23 10:52:17
回答 1查看 1.2K关注 0票数 0

Iam使用MX linux操作系统。我正在尝试使用stm32f103c8t6单片机。从沃伦·盖伊的用户手册开始,我成功地安装了stm32f103c8t6、libopencm3和FreeRTOS的git克隆。

当我下载和解压缩手臂交叉编译器时,文件保存在/opt/gcc-arm文件夹下。

在输入手臂-无-eabi-gcc-版本时,显示的是命令未找到错误。

在进一步探索并键入$ ls、-l /opt/gcc-arm/bin之后,它以以下绿色格式列出了arm-none-eabi-gcc

-rwxr-xr-x2 1001 1001 1296976 2020年11月24日arm-无-eabi-gcc

类似地,“类型gcc”命令给出输出的方式是'gcc is /usr/bin/arm‘,而不是像提到的用户手册中提到的’arm-none eabi- Similarly‘(/opt/arm/bin/)。

“输入arm-none-eabi-gcc”命令将输出作为“未找到”。

据我所知,绿色的文件意味着文件是可执行的,但我无法解释为什么计算机没有识别该命令。

最后,make命令得到了以下响应。

代码语言:javascript
复制
user@mx:~/stm32f103c8t6
$ make
make -C libopencm3 TARGETS=stm32/f1
make[1]: Entering directory '/home/user/stm32f103c8t6/libopencm3'
  BUILD   lib/stm32/f1
  CC      adc.c
make[2]: arm-none-eabi-gcc: Command not found
make[2]: *** [../../Makefile.include:41: adc.o] Error 127
Failure building: lib/stm32/f1: code: 2
make[1]: *** [Makefile:79: lib] Error 1
make[1]: Leaving directory '/home/user/stm32f103c8t6/libopencm3'
make: *** [Makefile:38: libopencm3/lib/libopencm3_stm32f1.a] Error 2
EN

回答 1

Unix & Linux用户

发布于 2021-07-23 11:06:07

看起来编译器的路径不在您的$PATH环境变量中。

为了确保所有工作正常,您应该使用绝对路径调用程序,或者:

代码语言:javascript
复制
/opt/gcc-arm/bin/arm-none-eabi-gcc

代码语言:javascript
复制
cd /opt/gcc-arm/bin/
./arm-none-eabi-gcc #the ./ is necessary to execute from the current directory

如果这有效(没有更多的命令没有找到错误),那么问题很容易解决:添加.bashrc的末尾(在主文件夹中,我假设您使用bash作为shell,如果文件不存在,则发布命令echo $SHELL的输出):

代码语言:javascript
复制
PATH+=':/opt/gcc-arm/bin/'

然后从当前的shell执行. ~/.bashrc (运行刚编辑的文件),或者只是打开一个新的终端,您现在应该能够找到这个命令了。

注意

我假设您是从英特尔/AMD机器交叉编译的(体系结构应该是x86_64,您可以通过命令uname -m或更多的信息uname -a找到它)。在本例中,您使用交叉编译器在x86机器上构建并生成ARM可执行文件,以便在您的stm32机器上运行。

如果我做了错误的假设,而你试图从stm32运行交叉编译器,那就不要。交叉编译器的优点是在功能更强大的机器上运行,并在您的小型嵌入式系统上运行,如果您想在stm32上编译而不依赖另一台计算机(即没有交叉编译),并且在那里运行linux,那么只需使用本地的gcc编译并在那里运行可执行文件即可。

注2

编译器arm-- NOT -eabi- gcc的目的是编译裸代码(例如,直接在嵌入式系统上运行的固件,而不是在linux上运行),而linux的gcc(或者交叉编译器arm--例如linux-gnueabihf)正在构建在linux上运行的程序。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/659606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档