0

我写了以下代码:

#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 平台上运行仍然存在问题。有没有其他解决方案?

4

1 回答 1

1

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

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

您是否尝试过LLVM 教程?强烈推荐。

于 2013-11-05T02:08:44.673 回答