我正在尝试使用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的情况下解决此问题?
答案 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
。