Maison >développement back-end >C++ >Pourquoi mon code C ne parvient-il pas à se compiler avec l'en-tête `` après la mise à niveau vers Catalina ?
La mise à niveau vers Catalina à partir de Mojave peut introduire des problèmes lors de la compilation de programmes qui s'appuient sur
Après la mise à niveau, la tentative de compilation de code à l'aide de l'outil
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 purge et protège le répertoire /usr/include, où se trouvent généralement les en-têtes C. Par conséquent, les systèmes de build peuvent ne pas parvenir à localiser les en-têtes nécessaires.
Pour résoudre ce problème, il est nécessaire de pointer le système de build vers les en-têtes corrects à l'aide de l'indicateur du compilateur -isysroot. . Voici les étapes à suivre :
Déterminez le chemin du SDK système à l'aide de xcrun --show-sdk-path, et modifiez le système de build en conséquence :
Suivre ces étapes devrait résoudre le problème et autoriser les programmes utilisant le
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!