如何编译包含LLVM API标头的C ++程序?

贾斯汀

我正在尝试使用C ++编译器来编译以下程序:

#include <stdio.h>
#include "llvm/IR/LLVMContext.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/IR/Module.h"

int main( int argc, char* argv[] )
{
   if( argc < 2 )
      llvm::errs() << "Expected an argument - IR file name\n";

   llvm::LLVMContext &context = llvm::getGlobalContext();
   llvm::SMDiagnostic err;
   llvm::Module* module = llvm::ParseIRFile( argv[1], err, context );

   if( !mod )
   {
      err.print( argv[0], errs() );
      return 1;
   }

   return 0;
}

我正在尝试使用以下命令来编译程序:

clang++ main.cpp -o main

但是,当我编译时,出现以下编译错误:

main.cpp:2:10: fatal error: 'llvm/IR/LLVMContext.h' file not found
#include "llvm/IR/LLVMContext.h"
         ^
1 error generated.

在这种情况下,我不确定使用Clang编译main.cpp时如何链接LLVM API头。

任何帮助将不胜感激。

伊丽·班德斯基(Eli Bendersky)

您需要检出LLVM或将其安装在系统上的某个位置。您可以按照此处的说明下载二进制发行版(包含可以构建的标头和库):http : //llvm.org/releases/download.html#3.5

您还可以按照以下说明从其SVN存储库中签出LLVM:http : //llvm.org/docs/GettingStarted.html#checkout

完成此操作后,我建议您查看随Makefiles一起提供llvm-clang-samples存储库,其中显示了如何构建示例程序以及最新的LLVM。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章