Maison >développement back-end >C++ >Pourquoi est-ce que je reçois des erreurs « Aucun membre nommé signbit » après la mise à niveau vers Catalina ?

Pourquoi est-ce que je reçois des erreurs « Aucun membre nommé signbit » après la mise à niveau vers Catalina ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-16 04:12:03310parcourir

Why Am I Getting

Erreur : lors de l'utilisation de Les en-têtes ne génèrent aucun membre nommé signbit dans l'espace de noms global

Après la mise à niveau vers Catalina, en utilisant les en-têtes du La bibliothèque entraîne une erreur indiquant qu'il n'y a aucun membre nommé signbit, fpclassify et isfinite dans l'espace de noms global.

Cause :

L'erreur est probablement causée par un paramètre CMAKE_OSX_SYSROOT incorrect. Sur Catalina, le répertoire /usr/include, où se trouvent traditionnellement les en-têtes C, a été purgé et protégé par SIP. Cela signifie que les projets qui s'attendent à trouver des en-têtes C dans /usr/include ne parviendront pas à se compiler.

Solution :

Pour résoudre le problème, vous devez pointer le build système aux emplacements corrects du collecteur. Voici les étapes à suivre :

  1. Vérifiez que Xcode est à jour.
  2. Utilisez -isysroot /sdk/path, où /sdkpath est la sortie de xcrun --show -sdk-path, comme indicateur du compilateur.
  3. Dans CMake :

    (a) Définissez CMAKE_OSX_SYSROOT sur /sdk/path.

    OU

    (b) Définissez CMAKE_CXX_FLAGS avec l'indicateur -isysroot /sdk/path.

Supplémentaire Options :

Si les solutions ci-dessus ne fonctionnent pas, vous pouvez essayer de désactiver SIP, bien que cela ne soit pas recommandé. Vous pouvez trouver des instructions sur la façon de procéder en vous référant au lien fourni dans le texte de la réponse.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn