如何解决"LLVM ERROR: Tried to execute an unknown external function"



我正在编写一个过程,将指令放入LLVM IR中,这些指令在归档中定义,然后在执行过程中从IR调用。我需要使用lli翻译。我使用的命令是:


lli-8-额外档案="/build/rtlib/mylib.a"-强制解释器输入.ll


我调用库的IR:

define protected i32 @main(i32, i8**) #0 !dbg !28 {
entry:
call void @func_entry(i32 16385, i32 1)
.
.
.
declare void @func_entry(i32, i32)

LLVM错误:试图执行在IR文件底部声明的未知外部函数。

如果.a是LLVM-IR的存档,则使用LLVM链接或LLVM ld将它们与您的输入链接,并在解释器中运行。

否则,带有解释器的LLI将尝试使用FFI调用外部函数。您的lli-8是否已启用FFI?.a文件是否定义了一个名称为"的符号;func_ entry";而不是"_Zfunc_entry"或"_func_entry"?您可以使用nmllvm-nm检查.a文件中定义的符号。

相关内容

最新更新