我已经下载了 ELLCC 二进制文件(Windows、MinGW)。我正在尝试组装和链接一个非常简单的 IR 文件。
对于x86_64-ellcc-windows-gnu
,它工作正常。对于armv7-ellcc-linux
( arm-linux-engeabi
) 和任何其他 ARM 目标,它会引发类似于以下的链接器错误:
"V:\Users\Teo\Downloads\ellcc-x86_64-w64-mingw32-0.1.12\bin/ecc-ld.exe" -n ostdlib "-LV:\Users\Teo\Downloads\ellcc-x86_64-w64- mingw32-0.1.12\bin\..\ libecc/lib/arm-linux-engeabi" -m armelf_linux_eabi --build-id --hash-style=gnu - -eh-frame-hdr -o a.out -e开始 -Bstatic "V:\Users\Teo\Downloads\ellcc-x86 64-w64-mingw32-0.1.12\bin\..\libecc/lib/arm-linux-engeabi/crt1.o" "V:\Users \ \Teo\Downloads\ellcc-x86_64-w64-mingw32-0.1.12\bin\..\libecc/lib/arm-linux-engeabi/crtbegin.o" "C:\Users\Teo\AppData\Local\Temp \Int32Add-42cacb.o" -( -lc -lcompiler-rt -) "V:\Users\Teo\Downloads\ellcc-x86_64-w64-mingw32-0.1.1 2\bin\..\libecc/lib/arm -linux-engeabi/crtend.o" C:\Users\Teo\AppData\Local\Temp\Int32Add-42cacb.o:(.ARM.exidx+0x0):未定义对“__aeabi_unwind_cpp_pr0”的引用
在阅读了有关类似问题的另一个答案后,我怀疑链接顺序错误,因此运行时未正确链接。
但是我将如何修复链接顺序 - 或者实际上是什么问题 - 因为链接器是由调用的ecc
?有没有理由ecc
不自动处理这个问题(特别是因为我只给它一个 IR 文件来编译)?