MacOS Ventura环境下CMake无法找到已安装的LZMA包问题
问题原因
在Apple Silicon(M2 Max)架构的MacOS Ventura 13.5上,Homebrew默认将软件安装在/opt/homebrew目录下,而CMake默认的配置文件搜索路径通常不包含这个路径,导致无法找到brew安装的xz提供的LZMAConfig.cmake文件。另外,部分旧版本CMake对ARM架构下的brew路径支持不完善,也会触发该错误。
解决方法
方法一:CMake命令行指定LZMA路径
执行CMake时,通过-DLZMA_DIR参数直接指定brew安装xz的根路径:cmake -DLZMA_DIR=$(brew --prefix xz) ..其中
$(brew --prefix xz)会自动输出xz的实际安装目录(通常为/opt/homebrew/opt/xz)。方法二:在CMakeLists.txt中添加搜索路径
在find_package(LZMA REQUIRED)代码前,将xz的安装路径加入CMake的搜索前缀列表:list(APPEND CMAKE_PREFIX_PATH "/opt/homebrew/opt/xz") # 也可以直接指定LZMA的根目录 # set(LZMA_DIR "/opt/homebrew/opt/xz") find_package(LZMA REQUIRED)若你的brew安装路径不是默认的
/opt/homebrew,可通过brew --prefix xz命令查询实际路径后替换。方法三:升级CMake到最新版本
旧版本CMake可能存在ARM架构下的路径搜索兼容性问题,执行以下命令升级CMake:brew upgrade cmake升级后重新运行CMake,新版本通常能自动识别brew在Apple Silicon上的安装路径。
内容的提问来源于stack exchange,提问作者Venelin
相关产品推荐
相关产品推荐

