升级到 Catalina 后? " /> 升级到 Catalina 后? " />
Catalina C : 处理
从 Mojave 升级到 Catalina 后,用户可能会遇到编译问题在 C 程序中引用
最初尝试修改 CFLAGS、CCFLAGS 和 CXXFLAGS环境变量似乎没有产生任何结果。但是,经过仔细检查,问题的根本原因在于其他地方。
CMAKE_OSX_SYSROOT 的作用
CMAKE_OSX_SYSROOT 的价值发挥着作用默认情况下,升级到 Catalina 后它会指向错误的位置。此错误配置会导致构建系统使用错误的头文件,而这些头文件缺少必要的定义。
解决方案:设置正确的 CMAKE_OSX_SYSROOT
要纠正这种情况,必须手动指定 SDK 标头的正确路径。这可以通过以下步骤来实现:
set(CMAKE_OSX_SYSROOT /sdk/path)
或者,您可以直接为 CXX 编译器设置 -isysroot 标志:
set(CMAKE_CXX_FLAGS "[...] -isysroot /sdk/path")
结论
通过解决 CMAKE_OSX_SYSROOT 设置不当的问题,可以成功解决与“signbit”相关的错误,并继续使用
以上是为什么升级到 Catalina 后