我几周前在debian wheezy上编译并安装了LLVM(configure& make),现在尝试从源代码编译llvm-mutate pass。 AFAICC,llvm-mutate遵循cmake out of source pass build instructions。
尝试构建llvm-mutate
时mkdir build
cd build
cmake -DCMAKE_MODULE_PATH=/usr/local/share/llvm/cmake ../
我明白了:
- 忽略Mutate - 此平台不支持可加载模块。
嗯? opt和可加载的传递(在llvm_trunk / build / Debug + Asserts / lib / xxx.so中)存在且工作(使用configure& make,而不是cmake编译)。
所以这个问题似乎与cmake有关? 其他人遇到了这样的问题,不管怎样在Win上使用cygwin:here
有什么想法吗? 谢谢 亚历
答案 0 :(得分: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 :(得分:1)
添加到alexei的reply。
您可以在list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
行之前的CMakeLists.txt
文件中添加include(AddLLVM)
,然后在PATH
llvm-config
的LLVM二进制目录中添加CXX=clang++ cmake -DLLVM_DIR=$(llvm-config --prefix)/share/llvm/cmake ..
,
调用cmake作为
JsonParser
答案 2 :(得分:1)
只是为了完整起见,如果有人会遇到此错误。此错误同时在LLVM 3.8.0中得到修复,因此您只需包含 AddLLVM 即可构建插件。 HandleLLVMOption 包含文件仅对如上所述的帖子中获得正确的编译器标志有所帮助。