2014-09-21 3 views
0

Je suis en train d'utiliser le compilateur C++ pour compiler le programme suivant:Comment compiler des programmes C++ qui incluent des en-têtes API LLVM?

#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; 
} 

Je suis en train de compiler le programme en utilisant la commande suivante:

clang++ main.cpp -o main 

Cependant, quand je compile, Je reçois l'erreur de compilation suivante:

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

Dans ce cas, je ne sais pas exactement comment lier les en-têtes API LLVM lors de la compilation avec main.cpp Bruit.

Toute aide serait grandement appréciée.

+0

'llvm-config --cxxflags' –

+0

llvm-config --help; notez que --cxxflags ne fonctionne que pour la compilation mais pas pour le linkage. –

Répondre

2

Vous avez besoin de LLVM extrait ou installé quelque part sur votre système. Vous pouvez télécharger une version binaire (avec les en-têtes et les bibliothèques que vous pouvez construire contre) comme expliqué ici: http://llvm.org/releases/download.html#3.5

Vous pouvez également consulter LLVM de son dépôt SVN comme expliqué ici: http://llvm.org/docs/GettingStarted.html#checkout

Une fois que vous faites cela, je recommande d'examiner le référentiel llvm-clang-samples fourni avec un fichier Makefiles montrant comment créer des exemples de programmes par rapport à un LLVM mis à jour.

Questions connexes