首页 > 后端开发 > C++ > 正文

升级到 Catalina 后,为什么我会收到'没有名为 signbit 的成员”错误?

Barbara Streisand
发布: 2024-11-16 04:12:03
原创
222 人浏览过

Why Am I Getting

错误:使用 标头在全局命名空间中生成没有名为 signbit 的成员

升级到 Catalina 后,使用 中的标头库导致错误,表明全局命名空间中没有名为signbit、fpclassify 和 isfinite 的成员。

原因:

该错误可能是由CMAKE_OSX_SYSROOT 设置不正确。在 Catalina 上,传统上 C 标头所在的 /usr/include 目录已被 SIP 清除和保护。这意味着期望在 /usr/include 中找到 C 头文件的项目将无法编译。

解决方案:

要解决该问题,您必须指向构建系统到正确的标头位置。以下是要遵循的步骤:

  1. 验证 Xcode 是否是最新的。
  2. 使用 -isysroot /sdk/path,其中 /sdkpath 是 xcrun --show 的输出-sdk-path,作为编译器标志。
  3. 在 CMake 中:

    (a) 将 CMAKE_OSX_SYSROOT 设置为 /sdk/path。

    OR

    (b) 使用 -isysroot /sdk/path 标志设置 CMAKE_CXX_FLAGS。

其他选项:

如果上述解决方案不起作用工作中,您可以尝试禁用 SIP,但不建议这样做。您可以通过参考答案文本中提供的链接找到有关如何执行此操作的说明。

以上是升级到 Catalina 后,为什么我会收到'没有名为 signbit 的成员”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板