Linux 链接器错误:未定义对_fbss的引用
我正在成功地从这个工具链构建Palm riscv gnu工具链 但当我试图用编译工具编译我的简单源代码时, 发生错误 我的命令是Linux 链接器错误:未定义对_fbss的引用,linux,gcc,compiler-construction,linker-scripts,Linux,Gcc,Compiler Construction,Linker Scripts,我正在成功地从这个工具链构建Palm riscv gnu工具链 但当我试图用编译工具编译我的简单源代码时, 发生错误 我的命令是riscv32-unknown-elf-g++-o hello hello.cpp 错误消息为/home/jskim/test\u toolschains\u lib/gcc/riscv32 unknown elf/7.1.1/../../../../../../../riscv32 unknown elf/bin/ld:无法打开链接器脚本文件riscv.ld:没有此类
riscv32-unknown-elf-g++-o hello hello.cpp
错误消息为/home/jskim/test\u toolschains\u lib/gcc/riscv32 unknown elf/7.1.1/../../../../../../../riscv32 unknown elf/bin/ld:无法打开链接器脚本文件riscv.ld:没有此类文件或目录
所以我尝试使用这个命令riscv32-unknown-elf-g++-o main.cpp-T/home/jskim/test_toolschains/riscv32-unknown-elf-ld/lib/ldscripts/elf32lriscv.x
但出现了以下错误:/home/jskim/test_toolschains/lib/gcc/riscv32 unknown elf/7.1.1/../../../../../riscv32 unknown elf/lib/crt0.o:In function'.L0':(.text+0x10):对'\u fbss'集合的未定义引用2:错误:ld返回1个退出状态
我使用的是CentOS 7.6,我尝试用GCC4.8.5和7.3.1构建这个纸浆gcc,但两者都显示了相同的错误。请帮帮我。我用这种方法解决了这个问题 我不太准确,但我认为问题是名字不匹配。 crt0似乎是start riscv处理器的助手,它有这一行
laa0\u fbss
,如果用_fbss替换为_edata,链接器基本上可以识别这一行。因此,我编辑了位于pillriscv gnu工具链/riscv newlib/libgloss/riscv/
的汇编文件,并重建了gnu工具链。并使用-T选项执行编译器,如riscv32-unknown-elf-g++-o main.cpp-T/home/jskim/test_toolschains/riscv32 unknown elf ld/lib/ldscripts/elf32lriscv.x
我认为这是最简单的解决办法