Mac平台编译luanti源码时CMake报错:找不到Zstd依赖
解决Mac源码安装luanti时CMake找不到Zstd的问题
问题描述
执行以下源码编译命令时CMake报错:
mkdir build cd build cmake .. \ -DCMAKE_FIND_FRAMEWORK=LAST \ -DCMAKE_INSTALL_PREFIX=../build/macos/ \ -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE make -j$(sysctl -n hw.logicalcpu) make install codesign --force --deep -s - --entitlements ../misc/macos/entitlements/debug.entitlements macos/luanti.app
报错信息:
-- Looking for ZSTD_initCStream -- Looking for ZSTD_initCStream - not found CMake Error at /opt/homebrew/lib/python3.11/site-packages/cmake/data/share/cmake-4.0/Modules/FindPackageHandleStandardArgs.cmake:227 (message): Could NOT find Zstd (missing: ZSTD_LIBRARY ZSTD_INCLUDE_DIR) Call Stack (most recent call first): /opt/homebrew/lib/python3.11/site-packages/cmake/data/share/cmake-4.0/Modules/FindPackageHandleStandardArgs.cmake:591 (_FPHSA_FAILURE_MESSAGE) cmake/Modules/FindZstd.cmake:24 (find_package_handle_standard_args) src/CMakeLists.txt:267 (find_package)
解决方案
1. 安装Zstd依赖
Mac系统用Homebrew直接安装Zstd:
brew install zstd
2. 重新执行编译流程
安装完成后,回到build目录,清空之前的CMake缓存后重新执行命令:
cd build rm -rf CMakeCache.txt CMakeFiles cmake .. \ -DCMAKE_FIND_FRAMEWORK=LAST \ -DCMAKE_INSTALL_PREFIX=../build/macos/ \ -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE make -j$(sysctl -n hw.logicalcpu) make install codesign --force --deep -s - --entitlements ../misc/macos/entitlements/debug.entitlements macos/luanti.app
3. 手动指定路径(如果安装后仍报错)
如果CMake还是找不到Zstd,在CMake命令里手动指定库和头文件路径:
cmake .. \ -DCMAKE_FIND_FRAMEWORK=LAST \ -DCMAKE_INSTALL_PREFIX=../build/macos/ \ -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE \ -DZSTD_LIBRARY=$(brew --prefix zstd)/lib/libzstd.dylib \ -DZSTD_INCLUDE_DIR=$(brew --prefix zstd)/include
内容的提问来源于stack exchange,提问作者Ishwari Katariya
相关产品推荐
相关产品推荐

