我试图跟随这介绍在树莓派上使用 C 语言进行裸机编程的教程。它建议的第一件事就是安装 gcc 4.7 工具链,而不是我当前安装的 4.8 版本。尽管我进行了所有的谷歌搜索,但我仍然无法完成这项工作。
我尝试使用该update-alternatives
命令,选择了 gcc-4.7,但没有成功。该命令gcc
遇到bash: gcc: command not found
错误。所以我显然不能使用gcc -v
or gcc --version
。
每当我运行生成可用内核映像文件的构建脚本时,该命令都会显示它已使用 的arm-none-eabi
4.8 版本。我完全不确定如何使用 4.7 版本来代替它。
以下是该特定脚本的内容,然后是我运行它时的输出。
#!/bin/sh
arm-none-eabi-gcc -O0 -DRPIBPLUS -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -nostartfiles -g armc-03.c -o kernel.elf
arm-none-eabi-objcopy kernel.elf -O binary kernel.img
和输出:
/usr/lib/gcc/arm-none-eabi/4.8/../../../arm-none-eabi/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000008000
这/4.8/
是我希望您能从该命令中得到的信息,尽管我认为它会抛出该警告,因为我使用的是“意外”编译器。 (有趣的是,当我在 Pi 上测试它时,它不起作用)
在这种情况下,如何在树莓派上编译C代码以用于裸机编程时使gcc使用4.7版本?
我想补充一点,标准./configure
、make
和make install
命令也不起作用。当我cd
进入解压缩的 tarball 的目录时,运行./configure
会出现“没有此类文件或目录”错误。