Heim >
Artikel > Backend-Entwicklung > Warum fehlt „signbit“ in
Nach dem Upgrade auf Catalina? " /> Nach dem Upgrade auf Catalina? " />
Catalina C: Umgang mit dem „Signbit“-Fehler in
Nach dem Upgrade von Mojave auf Catalina kann es bei Benutzern zu einer Kompilierung kommen Probleme beim Verweisen auf den
Zunächst Versuche, die CFLAGS, CCFLAGS und CXXFLAGS zu ändern Umgebungsvariablen scheinen keine Ergebnisse zu liefern. Bei näherer Betrachtung liegt die Ursache des Problems jedoch woanders.
Die Rolle von CMAKE_OSX_SYSROOT
Der Wert von CMAKE_OSX_SYSROOT spielt eine Rolle Eine entscheidende Rolle bei diesem Problem. Standardmäßig weist es auf einen falschen Speicherort nach dem Upgrade auf Catalina hin. Diese Fehlkonfiguration führt dazu, dass das Build-System die falschen Header-Dateien verwendet, denen die erforderlichen Definitionen fehlen.
Lösung : Festlegen des richtigen CMAKE_OSX_SYSROOT
Um die Situation zu beheben, ist es wichtig, den richtigen Pfad zu den SDK-Headern manuell anzugeben. Dies kann durch die folgenden Schritte erreicht werden:
set(CMAKE_OSX_SYSROOT /sdk/path)
Alternativ können Sie das Flag -isysroot direkt für den CXX-Compiler setzen:
set(CMAKE_CXX_FLAGS "[...] -isysroot /sdk/path")
Fazit
Indem Sie die falsche Einstellung von CMAKE_OSX_SYSROOT beheben, können Sie den Fehler im Zusammenhang mit „Signbit“ erfolgreich beheben und mit der Entwicklung von C-Programmen mit
Das obige ist der detaillierte Inhalt vonWarum fehlt „signbit“ in