Beim Upgrade auf macOS Catalina von Mojave ist bei Benutzern beim Kompilieren ein Fehler aufgetreten Programme, die das
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:
Setzen Sie CMAKE_OSX_SYSROOT: Setzen Sie diese Variable mit einer der folgenden Methoden auf das Ergebnis von xcrun --show-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!