首頁 > 後端開發 > C++ > 升級到 Catalina 後,為什麼我會收到「沒有名為 signbit 的成員」錯誤?

升級到 Catalina 後,為什麼我會收到「沒有名為 signbit 的成員」錯誤?

Barbara Streisand
發布: 2024-11-16 04:12:03
原創
310 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板