首页 > 解决方案 > Riscv32-unknown-elf 读取链接器脚本后出现链接器错误:未定义对“_end”的引用

问题描述

我正在尝试编译并将定制的 c 代码链接到 risc v 项目,但我在制作过程中遇到了这些错误:

我是这个领域的新手,所以请原谅任何错误。

/local/home/opt/riscv/lib/gcc/riscv32-unknown-elf/9.2.0/../../../../riscv32-unknown-elf/bin/ld: 
/local/home/opt/riscv/lib/gcc/riscv32-unknown-elf/9.2.0/../../../../riscv32-unknown-elf/lib/crt0.o:
 in function `_start':
(.text+0x0): undefined reference to `__global_pointer$'
/local/home/s2500108/riscv/lib/gcc/riscv32-unknown-elf/9.2.0/../../../../riscv32-unknown-elf/bin/ld: (.text+0x8): undefined reference to `_edata'
/local/home/s2500108/riscv/lib/gcc/riscv32-unknown-elf/9.2.0/../../../../riscv32-unknown-elf/bin/ld: (.text+0x10): undefined reference to `_end'
collect2: error: ld returned 1 exit status

我也想问这个:

执行./configure --prefix=/local/home/s2500108/riscv --with-abi=ilp32 --with-arch=rv32i +make 并尝试在c 代码示例中编译乘法指令后a=21, b=10; a * b 编译器不输出任何错误,正常生成elf文件。为什么会这样?我想确保不会发生乘法

标签: cgccconfigurationlinkerriscv

解决方案


推荐阅读