Lors de la mise à niveau vers macOS Catalina depuis Mojave, les utilisateurs ont rencontré une erreur lors de la compilation programmes utilisant le
error: no member named 'signbit' in the global namespace
Cette erreur provient du fait que Catalina purge et protège /usr/include avec la protection de l'intégrité du système (SIP). Par conséquent, tous les projets qui s'attendent à trouver des en-têtes C dans ce répertoire ne pourront pas être compilés.
Solution :
Pour résoudre ce problème, il est nécessaire de diriger le build système aux en-têtes appropriés :
Définissez CMAKE_OSX_SYSROOT : Définissez cette variable sur le résultat de xcrun --show-sdk-path en utilisant l'une des méthodes suivantes :
Si ces étapes résolvent le problème, envisagez d'explorer de meilleures approches pour définir ces indicateurs dans CMake. De plus, la désactivation de SIP (bien qu’aventureuse) peut constituer une solution temporaire. Cependant, il est recommandé de signaler les bogues aux projets qui attendent toujours des en-têtes C dans /usr/include.
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!