MacOS BigSur cmake“找不到 ZLIB”

问题描述 投票:0回答:2

我最近更新到了 macOS Big Sur,现在使用 cmake 编译 C++ 代码库时遇到问题。

我已经解决了一些与 Xcode 配置相关的问题(请参阅我的问题此处 M1 MacBook Pro 和 cmake 的编译错误)。

我的新问题如下:当我运行

make
时,我得到以下输出:

CMake Error at /usr/local/Cellar/cmake/3.19.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:218 (message):
  Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
Call Stack (most recent call first):
  /usr/local/Cellar/cmake/3.19.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:577 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/Cellar/cmake/3.19.1/share/cmake/Modules/FindZLIB.cmake:115 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:53 (FIND_PACKAGE)

我已经尝试在 cmake gui 中设置 ZLIB_LIBRARY 和 ZLIB_INCLUDE_DIR 的值,但它仍然不起作用,我想我将它们设置为错误的东西。我到底应该在 macOS Big Sur 上哪里找到 zlib?ZLIB_LIBRARY 和 ZLIB_INCLUDE_DIR 需要指向哪些文件?

macos cmake zlib macos-big-sur
2个回答
1
投票

我最终设法通过修改我的 CMakeConfig.txt 文件来解决这个问题。有一条线

execute_process(COMMAND bash -c "xcodebuild -version -sdk | grep MacOSX | grep \"MacOSX10.1\\d.sdk\" | grep Path | head -n 1 | cut -f 2 -d ' '" OUTPUT_VARIABLE CMAKE_OSX_SYSROOT)

我替换为

execute_process(COMMAND xcrun --show-sdk-path OUTPUT_VARIABLE CMAKE_OSX_SYSROOT)

不确定为什么 MacOS sdk 版本会对 ZLIB 产生影响,但这解决了问题。


0
投票

MacOS Big Sur 中似乎 usr/lib/ 的功能已更改。请参阅此处爱斯基摩人的帖子 - https://developer.apple.com/forums/thread/655588 了解背景故事以及库已移至何处。

© www.soinside.com 2019 - 2024. All rights reserved.