2012-08-13 16 views
8

Sto provando a creare uno degli esempi della distribuzione standard, ovvero BrainF, e non ci sono riuscito.Edificio LLVM esempio

Ho creato la mia copia di esempi/BrainF e ho cercato di eseguire cmake da questa directory. Inizialmente CMakeLists.txt assomigliava a questo:

set(LLVM_LINK_COMPONENTS jit bitwriter nativecodegen interpreter) 

add_llvm_example(BrainF 
    BrainF.cpp 
    BrainFDriver.cpp 
) 

cmake si lamentava di add_ *. Ho letto attraverso http://llvm.org/docs/CMake.html#embedding e ha deciso di aggiungere un po 'preludio CMakeLists.txt:

find_package(LLVM) 

# Define add_llvm_* macro's. 
include(AddLLVM) 

add_definitions(${LLVM_DEFINITIONS}) 
include_directories(${LLVM_INCLUDE_DIRS}) 
link_directories(${LLVM_LIBRARY_DIRS}) 

Poi CMake sono lamentati del fatto che could't eseguire find_package(LLVM) e ha suggerito di cercare LLVMConfig.cmake o LLVM-config.cmake. La cosa più vicina trovata in /usr/src/llvm/cmake/modules/LLVM-Config.cmake così ho impostato CMAKE_PREFIX_PATH=/usr/src/llvm/cmake/modules/ e reso il soft link LLVMConfig.cmake a LLVM-Config.cmake.

Quindi cmake si è lamentato in questo modo: "include could non find load file: AddLLVM". Se eseguo l'hardcode dell'intero percorso per includere AddLLVM.cmake, il problema va a includere quelli che esistono all'interno di AddLLVM.cmake in modo che non sembri il modo giusto per eseguire le operazioni.

Il mio ambiente è Xubuntu 12.04 e llvm + clang 3.1 (ottenuto pacchetto deb da qualche ppa, backport da Debian).

+0

'Ho creato la mia copia di esempi/BrainF e sto provando a eseguire cmake da questa directory. Perché l'hai fatto? Se desideri impostare un progetto, che utilizza LLVM, consulta http://llvm.org/docs/CMake.html#embedding-llvm-in-your-project – arrowd

+0

"Perché l'hai fatto? Se desideri creare un progetto "- Cerco solo di creare uno dei loro esempi. E non voglio farlo all'interno delle directory di sistema (dove dovrò usare sudo). L'aggiornamento discusso nella mia risposta al post sottostante proviene esattamente dalla pagina che hai indicato. Semplicemente non ho usato esplicitamente llvm_map_components_to_libraries e lasciato il loro set (LLVM_LINK_COMPONENTS ...) e add_llvm_example (...) che (come suggerisce il testo di errore) usano esplicitamente le_completent_components_to_brary che a loro volta fanno quasi lo stesso, immagino. –

risposta

4

Questo thread mi ha aiutato a ottenere AddLLVM: For the cmake "include" command, what is the difference between a file and a module?

Inoltre, ora l'impostazione dopo manualmente Ho problema: “Libreria` JIT' non trovato nella lista delle librerie LLVM”. Il testo integrale dell'errore:

$ cmake . 
CMake Error at /usr/src/llvm/cmake/modules/LLVM-Config.cmake:141 (message): 
    Library `jit' not found in list of llvm libraries. 
Call Stack (most recent call first): 
    /usr/src/llvm/cmake/modules/LLVM-Config.cmake:54 (explicit_map_components_to_libraries) 
    /usr/src/llvm/cmake/modules/LLVM-Config.cmake:47 (explicit_llvm_config) 
    /usr/src/llvm/cmake/modules/AddLLVM.cmake:86 (llvm_config) 
    /usr/src/llvm/cmake/modules/AddLLVM.cmake:112 (add_llvm_executable) 
    CMakeLists.txt:17 (add_llvm_example)