Heim >Backend-Entwicklung >C++ >Warum kann mein C-Code nach dem Upgrade auf Catalina nicht mit dem „'-Header kompiliert werden?
Ein Upgrade von Mojave auf Catalina kann beim Kompilieren von Programmen, die auf dem
Nach dem Upgrade wurde versucht, Code mit der Funktion
error: no member named 'signbit' in the global namespace error: no member named 'fpclassify' in the global namespace error: no member named 'isfinite' in the global namespace
Catalina bereinigt und schützt das Verzeichnis /usr/include, in dem sich normalerweise die C-Header befinden. Infolgedessen können Build-Systeme möglicherweise nicht die erforderlichen Header finden.
Um dieses Problem zu beheben, ist es notwendig, das Build-System mithilfe des Compiler-Flags -isysroot auf die richtigen Header zu verweisen . Hier sind die Schritte dazu:
Bestimmen Sie den System-SDK-Pfad mit xcrun --show-sdk-path und Ändern Sie das Build-System entsprechend:
Das Befolgen dieser Schritte sollte das Problem beheben und es Programmen ermöglichen, die die Funktion
Das obige ist der detaillierte Inhalt vonWarum kann mein C-Code nach dem Upgrade auf Catalina nicht mit dem „'-Header kompiliert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!