从 Mojave 升级到 macOS Catalina 时,用户在编译时遇到错误使用
error: no member named 'signbit' in the global namespace
此错误源于 Catalina 使用系统完整性保护 (SIP) 清除和保护 /usr/include 的事实。因此,任何希望在此目录中找到 C 头文件的项目都将无法编译。
解决方案:
要解决此问题,需要直接构建系统到适当的标头:
设置CMAKE_OSX_SYSROOT: 使用以下方法之一将此变量设置为 xcrun --show-sdk-path 的结果:
如果这些步骤解决了问题,请考虑探索在 CMake 中设置这些标志的更好方法。此外,禁用 SIP(尽管冒险)可能会提供临时解决方案。但是,建议向仍需要 /usr/include 中的 C 标头的项目报告错误。
以上是“错误:‘全局命名空间中没有名为‘signbit’的成员’Catalina 升级后:解决方案是什么?”的详细内容。更多信息请关注PHP中文网其他相关文章!