Heim  >  Artikel  >  Backend-Entwicklung  >  „Fehler: ‚Kein Mitglied namens ‚Signbit‘ im globalen Namespace‘ nach dem Catalina-Upgrade: Was ist die Lösung?“

„Fehler: ‚Kein Mitglied namens ‚Signbit‘ im globalen Namespace‘ nach dem Catalina-Upgrade: Was ist die Lösung?“

Patricia Arquette
Patricia ArquetteOriginal
2024-11-18 05:34:02128Durchsuche

Fehler: „Kein Mitglied namens ‚signbit‘ im globalen Namespace“ nach dem Catalina-Upgrade

Beim Upgrade auf macOS Catalina von Mojave ist bei Benutzern beim Kompilieren ein Fehler aufgetreten Programme, die das header:

error: no member named 'signbit' in the global namespace

Dieser Fehler ist auf die Tatsache zurückzuführen, dass Catalina /usr/include mit System Integrity Protection (SIP) bereinigt und schützt. Daher können alle Projekte, die erwarten, C-Header in diesem Verzeichnis zu finden, nicht kompiliert werden.

Lösung:

Um dieses Problem zu beheben, muss der Build gesteuert werden System zu den entsprechenden Headern:

  1. Stellen Sie sicher, dass Xcode aktualisiert ist:Verwenden Sie die neueste Version von Xcode, um dies zu vermeiden Mögliche Inkompatibilitäten.
  2. Setzen Sie CMAKE_OSX_SYSROOT: Setzen Sie diese Variable mit einer der folgenden Methoden auf das Ergebnis von xcrun --show-sdk-path:

    • set(CMAKE_OSX_SYSROOT /sdk/path)
    • set(CMAKE_CXX_FLAGS "[...] -isysroot /sdk/path")

Wenn diese Schritte das Problem beheben, Erwägen Sie die Suche nach besseren Ansätzen zum Festlegen dieser Flags in CMake. Darüber hinaus kann die Deaktivierung von SIP (wenn auch abenteuerlich) eine vorübergehende Lösung darstellen. Es wird jedoch empfohlen, Fehler an Projekte zu melden, die noch C-Header in /usr/include erwarten.

Das obige ist der detaillierte Inhalt von„Fehler: ‚Kein Mitglied namens ‚Signbit‘ im globalen Namespace‘ nach dem Catalina-Upgrade: Was ist die Lösung?“. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn