我试图使用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头。
非常感谢任何帮助。
答案 0 :(得分:2)
您需要检出LLVM或将其安装在系统的某个位置。您可以下载二进制版本(包含可以构建的标题和库),如下所述:http://llvm.org/releases/download.html#3.5
您还可以从其SVN存储库中查看LLVM,如下所述:http://llvm.org/docs/GettingStarted.html#checkout
一旦你这样做,我建议你看看Makefiles附带的llvm-clang-samples存储库,它展示了如何构建示例程序和最新的LLVM。
答案 1 :(得分:1)
您可以使用以下命令: g ++ -std = c ++ 11 main.cpp`llvm-config --system-libs --cppflags --ldflags --libs core` -o main
其中--libs和--system-libs标志用于链接, - cppflags用于处理包含路径。
谢谢