【问题标题】:MacOS BigSur cmake "Could NOT find ZLIB"MacOS BigSur cmake“找不到 ZLIB”
【发布时间】:2020-12-13 19:57:43
【问题描述】:

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

我已经解决了一些与 Xcode 配置相关的问题(请参阅我的问题Compilation errors with M1 MacBook Pro and 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 需要指向哪些文件?

【问题讨论】:

  • 传统轨迹是/usr/lib/libz.dylib
  • @RichardBarber 我的 /usr/lib 中没有 libz.dylib 文件。
  • 由于您已经在使用自制软件,请尝试通过brew install zlib 安装zlib。
  • @vre 我已经尝试过了并将 ZLIB_LIBRARY 和 ZLIB_INCLUDE_DIR 设置为 /usr/local/Cellar/zlib/1.2.11/lib 和 /usr/local/Cellar/zlib/1.2.11/include 但是并没有什么不同。
  • 在进行这些更改后,您是否删除了 CMakeCache.txt 或整个构建目录?有时这是必要的。只需使用自制软件安装它而不设置这些变量就足够了。

标签: macos cmake lib macos-big-sur


【解决方案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 产生影响,但这解决了问题。

【讨论】:

    【解决方案2】:

    似乎 usr/lib/ 的功能在 MacOS Big Sur 中已更改。请在此处查看爱斯基摩人的帖子 - https://developer.apple.com/forums/thread/655588 了解背景故事以及图书馆已迁移到的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      • 2018-10-19
      • 2018-11-27
      • 1970-01-01
      • 2021-03-19
      • 1970-01-01
      相关资源
      最近更新 更多