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

Luc*_*scu 3 homebrew cmake

我正在尝试使用 Homebrew (MacOS High Sierra 10.13.3) 提供的库存 LLVM 5.0.0。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}")
Run Code Online (Sandbox Code Playgroud)

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

CMakeLists.txt:74 (find_package) 处的 CMake 错误:由于未在 CMAKE_MODULE_PATH 中提供“FindLLVM.cmake”,该项目已要求 CMake 查找“LLVM”提供的包配置文件,但 CMake 未找到。

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

LLVMConfig.cmake
llvm-config.cmake
Run Code Online (Sandbox Code Playgroud)

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

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

cmake .. -DLLVM_DIR=/usr/local/Cellar/llvm/5.0.0/share/cmake/modules/
Run Code Online (Sandbox Code Playgroud)

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

CMakeLists.txt 处的 CMake 错误:74 (find_package):找不到与请求的版本“5.0.0”兼容的包“LLVM”的配置文件。

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

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

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

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

Luc*_*scu 6

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

cmake .. -DLLVM_DIR=/usr/local/Cellar/llvm/5.0.0/lib/cmake/llvm/
Run Code Online (Sandbox Code Playgroud)

不知道为什么brew决定为LLVM安装2个版本的CMake助手,一个sharelib.