从brew使用LLVM 5.0.0时出现Cmake错误

时间:2017-12-23 22:19:14

标签: cmake homebrew

我正在尝试使用Homebrew提供的LLVM 5.0.0(MacOS High Sierra 10.13.3)。 LLVM安装在/usr/local/Cellar/llvm/5.0.0/

下的我的计算机上

现在,在我的项目中,我在CMakeLists.txt中有以下几行:

# Find the LLVM library
find_package( LLVM 5.0.0 REQUIRED )
include_directories( "${LLVM_INCLUDE_DIRS}" )
link_directories(${LLVM_LIBRARY_DIRS})
message(STATUS "LLVM include dirs: ${LLVM_INCLUDE_DIRS}")

如果我在没有任何参数的情况下运行CMake,我会得到:

  

CMakeLists.txt上的CMake错误:74(find_package):    通过在CMAKE_MODULE_PATH中不提供“FindLLVM.cmake”,该项目具有    要求CMake找到“LLVM”提供的包配置文件,但是    CMake没找到。

     

找不到“LLVM”提供的包配置文件(请求    版本5.0.0)具有以下任何名称:

LLVMConfig.cmake
llvm-config.cmake
     

将“LLVM”的安装前缀添加到CMAKE_PREFIX_PATH或设置    “LLVM_DIR”到包含上述文件之一的目录。如果“LLVM”    提供单独的开发包或SDK,确保它已经存在    安装。

它告诉我它找不到LLVM。所以,我将路径传递给LLVM_DIR,如下所示:

cmake .. -DLLVM_DIR=/usr/local/Cellar/llvm/5.0.0/share/cmake/modules/

我希望一切顺利。相反,我收到以下错误:

  

CMakeLists.txt上的CMake错误:74(find_package):    无法找到兼容的软件包“LLVM”的配置文件    请求版本为“5.0.0”。

     

考虑了以下配置文件但未被接受:

     

/usr/local/Cellar/llvm/5.0.0/share/cmake/modules/llvm-config.cmake,      版本:未知

由于某种原因,该版本不在share/cmake/modules目录中的任何位置。

如何在不更改brew安装的LLVM的情况下解决此问题?

1 个答案:

答案 0 :(得分:0)

找到答案。我正在向LLVM_DIR传递错误的路径。 我只需要使用另一个目录(隐藏在lib中,而不是share中):

cmake .. -DLLVM_DIR=/usr/local/Cellar/llvm/5.0.0/lib/cmake/llvm/

不确定为什么brew决定为LLVM安装2个版本的CMake助手,一个在share,一个在lib