【问题标题】:LLVM metadata and external function errorLLVM 元数据和外部函数错误
【发布时间】:2013-11-05 00:31:30
【问题描述】:

我写了以下代码:

#include "llvm/IR/Instructions.h"
#include "llvm/IR/Metadata.h"

using namespace llvm;

int main() {

     int a=0,b=0,c=0;
     Instruction *I;
     LLVMContext& C = I->getContext();
     MDNode* N = MDNode::get(C, MDString::get(C, "my md string content"));
     I->setMetadata("my.md.name", N);

    if(a>b){
       c=a;
       cast<MDString>(I->getMetadata("my.md.name")->getOperand(0))->getString();
    }
    else
       c=b;

    return c;
}

当我尝试使用lli 运行此代码时,它会生成以下错误:

“LLVM 错误:找不到无法解析的外部函数 '___ZXXcONTEXT4LS'!”

你能帮我解决这个问题吗?我知道 LIBFFI 项目。不幸的是,LIBFFI 在 windows 平台上运行仍然存在问题。有没有其他解决办法?

【问题讨论】:

    标签: llvm


    【解决方案1】:

    这里至少有两个严重的问题:

    1. I 在重定向之前未分配(这可能导致分段错误)。
    2. “使用 lli 运​​行此程序”是什么意思? lli 应该用于解释/JIT LLVM IR。您上面显示的可能是一个必须与 LLVM 链接的 C++ 程序,它们是完全不同的东西。

    您尝试过LLVM tutorial 吗?强烈推荐。

    【讨论】:

    • 我将完成本教程。谢谢你。但是你知道外部函数错误的原因吗?
    • @ConsistentProgrammer:您需要先提供更多详细信息 - 使用 lli 运​​行该代码是什么意思?该代码不打算与 lli 一起运行。它是应该与 LLVM 链接并将其用作库的 C++ 代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多