LLVM元数据和外部函数错误

LLVM元数据和外部函数错误,llvm,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,

我编写了以下代码:

#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;
}
#包括“llvm/IR/Instructions.h”
#包括“llvm/IR/Metadata.h”
使用名称空间llvm;
int main(){
int a=0,b=0,c=0;
指示*I;
LLVMContext&C=I->getContext();
MDNode*N=MDNode::get(C,MDString::get(C,“我的md字符串内容”);
I->setMetadata(“my.md.name”,N);
如果(a>b){
c=a;
cast(I->getMetadata(“my.md.name”)->getOperator(0))->getString();
}
其他的
c=b;
返回c;
}
当我尝试使用
lli
运行此代码时,它会生成以下错误:

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


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

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

  • I
    在重定向之前未分配(这可能导致分段错误)
  • 你说“和lli一起做”是什么意思<代码>lli应用于解释/JIT LLVM IR。上面所展示的可能是一个C++程序,它必须与LLVM链接,这些完全不同。
    你有没有试着通过考试?强烈推荐。

    我将学习本教程。非常感谢。但是你知道外部函数错误的原因吗?@ConsistentProgrammer:你需要首先提供更多的细节-用lli运行代码意味着什么?这段代码并不打算与lli一起运行。它是C++代码,应该与LLVM链接,并将其用作库。