我正在尝试使用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
目录中的任何地方。
如何解决此问题,而不更改酿造的LLVM?
找到了答案。我经历了通往llvm_dir的错误道路。我只需要使用另一个目录(埋在lib
中,而不是share
中):
cmake .. -DLLVM_DIR=/usr/local/Cellar/llvm/5.0.0/lib/cmake/llvm/
不确定为什么Brew决定为LLVM安装2个版本的CMAKE助手,一个在share
中,一个在lib
中。