LLVM元数据和外部函数错误

时间:2013-11-05 00:31:31

标签: llvm

我写了以下代码:

#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 ERROR:无法找到无法解析的外部函数'___ZXXcONTEXT4LS!”

你可以帮我解决这个问题吗?我知道LIBFFI项目。不幸的是,LIBFFI在Windows平台上运行时仍有问题。还有其他解决办法吗?

1 个答案:

答案 0 :(得分:1)

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

    在您重定向之前未分配
  1. I(这可能会导致分段错误)。
  2. 你是什么意思“用lli运行这个”? lli应该用于解释/ JIT LLVM IR。你上面展示的可能是一个必须与LLVM链接的C ++程序,这些是完全不同的东西。
  3. 您是否尝试通过LLVM tutorial?强烈推荐。