VS 2012上的LLVM编译错误

时间:2014-05-21 13:43:40

标签: c++ visual-studio visual-studio-2012 llvm

我使用CMake使用CMake构建了LLVM以保持文档。我正在尝试使用flex,bison和LLVM构建一个玩具编译器。我的编译器的最后阶段我的主类看起来像这样:

#include <iostream>
#include "codegen.h"
#include "node.h"
#include "llvm/Target/Targetmachine.h"



using namespace std;

extern int yyparse();
extern NBlock* programBlock;

void createCoreFunctions(CodeGenContext& context);

int main(int argc, char **argv)
{
    yyparse();
    std::cout << programBlock << endl;

    InitializeNativeTarget();
    CodeGenContext context;
    createCoreFunctions(context);
    context.generateCode(*programBlock);
    context.runCode();

    return 0;
}

正如我在上一篇文章LLVM 3.4 linker errors in VS 2012中所述。为了解决这个问题,我手动添加了我丢失的x86文件(从错误中获取线索)。我最后在主要内容中添加了以下内容:

#include "llvm-3.4/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h"
#include "llvm-3.4/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h"
#include "llvm-3.4/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h"
#include "X86MCAsmInfo.h"
#include "llvm/ADT/Triple.h"
#include "llvm/MC/MCCodeGenInfo.h"
#include "llvm/MC/MCInstrAnalysis.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/MachineLocation.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Host.h"
#include "llvm/Support/TargetRegistry.h"
#include "X86GenRegisterInfo.inc"
#include "X86GenInstrInfo.inc"
#include "X86GenSubtargetInfo.inc"

但我注意到我的系统中缺少以下内容:

 "X86MCAsmInfo.h"
 "X86GenRegisterInfo.inc"
 "X86GenInstrInfo.inc"
 "X86GenSubtargetInfo.inc"

我查看了在线文档,但我是这个主题的初学者,其中大部分对我来说没有多大意义。如果有人可以指导我或指导我正确的教程,让我更好地理解我在这里做错了什么,我将不胜感激。

0 个答案:

没有答案