2015-01-09 27 views
6

幾周前我從debian喘息狀態編譯並安裝LLVM(配置& make),現在嘗試從源代碼中編譯llvm-mutate pass。 AFAICC,llvm-mutate遵循cmake out of source pass build instructionsLLVM超出源代碼構建:不支持可加載模塊(在Linux上)

當試圖建立LLVM-變異

mkdir build 
cd build 
cmake -DCMAKE_MODULE_PATH=/usr/local/share/llvm/cmake ../ 

我得到:

- 變異忽略 - 不支持在此平臺上可加載模塊。

hmm? opt和可加載的通行證(在llvm_trunk/build/Debug + Asserts/lib/xxx.so)存在並且工作(已經使用配置& make,而不是cmake編譯)。

所以這個問題似乎與cmake有關? 有人遇到過這樣的問題,使用cygwin Win的方法:here

任何想法? Thx Alex

回答

2

AddLLVM cmake模塊需要一些先決條件。添加到CMakeLists.txt:

# AddLLVM needs these 
set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) 
set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib) 

include(HandleLLVMOptions) # important: matches compiler flags to LLVM/Clang build 
include(AddLLVM) 

一些靈感來自this message

1

添加到阿列克謝的reply

也在之前include(AddLLVM)行的CMakeLists.txt文件,

添加 list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")然後

在你的PATH LLVM的二進制文件目錄llvm-config, 調用cmake的

CXX=clang++ cmake -DLLVM_DIR=$(llvm-config --prefix)/share/llvm/cmake .. 
1

只是爲了完整起見,如果有人會遇到這個錯誤。此錯誤同時在LLVM 3.8.0中修復,因此您只需包含AddLLVM即可構建您的插件。包含文件只有在獲得正確的編譯器標誌時纔有用,如上所述。

相關問題