RISC V链接器找不到-lgcc

问题描述

我正在尝试为GCC编译C代码,但是链接器无法找到libgcc。 我想为RV32I内核编译一些简单的测试。

当我尝试使用模运算符时,GCC会生成对的软实现的调用 mod指令。

<Route />

但是链接失败,因为我认为我缺少call __modsi3

libgcc

这是我的编译命令:

test.c:(.text+0x34): undefined reference to `__modsi3'

这些是我的链接器选项:

riscv64-unknown-elf-gcc -lm -lgcc -static -march=rv32i -mabi=ilp32 -nostartfiles -ffreestanding  crt0.s -O0

如果我尝试在链接器上使用-lgcc -b elf32-littleriscv -m elf32lriscv 选项,它将引发以下错误:

-lgcc

我还尝试直接提供riscv64-unknown-elf-ld: cannot find -lgcc 的路径。但这没有帮助。 我以这种方式得到了libgcc.a的路径:

libgcc.a

我将路径直接添加到编译命令中,如下所示:

riscv64-unknown-elf-gcc -march=rv32i -print-libgcc-file-name

另外,我编译工具链的方式可能是问题,我正在使用具有-L="/mnt/c/Users/camin/Documents/opt/riscv/lib/gcc/riscv64-unknown-elf/10.2.0/libgcc.a" 支持的RISCV工具链

我遵循了https://github.com/riscv/riscv-gnu-toolchain的指示 稍加修改(multi-lib

-j12

这也安装了工具链,因此我不必./configure --prefix=/opt/riscv --enable-multilib make -j12

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)