Проблема: Ubuntu 10.10 не поддерживает модули LLVM CMake (/usr/share/llvm
) или (/usr/local/share/llvm
) при установке LLVM 2.8 из репозиториев Ubuntu.
Так что ясейчас я сам компилирую LLVM 2.8, используя CMake, а затем устанавливаю его так:
cmake ..
make
make install
Это установит модули CMake, которые мне нужны, чтобы связать LLVM в мою библиотеку.Проблема в том, что когда я компилирую LLVM с использованием CMake, компилируются только статические библиотеки.Я видел в документации LLVM, что вы можете скомпилировать совместно используемые библиотеки, используя этот параметр в CMake:
cmake -DBUILD_SHARED_LIBS=true ..
Но теперь CMake возвращает эту ошибку:
-- Target triple: i686-pc-linux-gnu
-- Native target architecture is X86
-- Threads enabled.
-- Building with -fPIC
-- Targeting Alpha
-- Targeting ARM
-- Targeting Blackfin
-- Targeting CBackend
-- Targeting CellSPU
-- Targeting CppBackend
-- Targeting Mips
-- Targeting MBlaze
-- Targeting MSP430
-- Targeting PIC16
-- Targeting PowerPC
-- Targeting Sparc
-- Targeting SystemZ
-- Targeting X86
-- Targeting XCore
-- Configuring done
CMake Error: The inter-target dependency graph contains the following strongly connected component (cycle):
"LLVMARMCodeGen" of type SHARED_LIBRARY
depends on "LLVMARMAsmPrinter"
"LLVMARMAsmPrinter" of type SHARED_LIBRARY
depends on "LLVMARMCodeGen"
At least one of these targets is not a STATIC_LIBRARY. Cyclic dependencies are allowed only among static libraries.
-- Build files have been written to: /llvm-2.8/build
И я не могу скомпилировать еекак общая библиотека, кто-нибудь знает, как решить эту проблему?Мне нужны разделяемые библиотеки, потому что они зависят от многих других инструментов.
Резюме
1) LLVM 2.8 из репозитория Ubuntu устанавливает разделяемые библиотеки LLVM, но не устанавливает нужные мне модули CMake.
2) С другой стороны, если я сам компилирую LLVM, он устанавливает нужные мне модули CMake, но я могу сделать это только при компиляции LLVM в качестве статической библиотеки.