【发布时间】:2023-01-09 02:59:41
【问题描述】:
我使用的是 rv32ima 裸机处理器,我需要为此使用 riscv32。我一直在努力寻找合适的包组合来为它编译。我发现的最接近的是:
apt-get install gcc-multilib gcc-riscv64-unknown-elf
然后执行:
riscv64-unknown-elf-gcc -o test.elf test.c -O1 -march=rv32ima -mabi=ilp32 -nostdlib -T flatfile.lds
In file included from test.c:1:
/usr/lib/gcc/riscv64-unknown-elf/9.3.0/include/stdint.h:9:16: fatal error: stdint.h: No such file or directory
9 | # include_next <stdint.h>
| ^~~~~~~~~~
但是,它似乎没有安装适当的标头。
旁注:它似乎也不包含 rv32 libc,我真的不需要它,但它不会造成伤害。
有什么建议吗?我希望让其他人可以轻松构建/使用它。最好在 Ubuntu/Linux Mint/Debian 世界中。
【问题讨论】:
-
multilib并没有以某种方式携带所有可能拱门的库(通常只有 x86 库用于 x86_64 上的旧应用程序)。事实上,在处理相对模糊的 archs 时,你最好的选择是 Gentoo(因此你将 portage 设置为使用交叉编译器)。设置起来有点棘手,但可以提供一致的结果。特别是对于 Debian,我认为他们对 riscv32 根本不感兴趣。