Maison >développement back-end >C++ >Pourquoi est-ce que j'obtiens l'erreur « Aucun membre nommé « signbit » dans l'espace de noms global » dans Catalina C ?

Pourquoi est-ce que j'obtiens l'erreur « Aucun membre nommé « signbit » dans l'espace de noms global » dans Catalina C ?

DDD
DDDoriginal
2024-11-15 02:11:02510parcourir

Why Am I Getting the

Catalina C : "Aucun membre nommé 'signbit' dans l'espace de noms global" Erreur

Lors de la compilation d'un programme C à l'aide de après la mise à niveau vers Catalina depuis Mojave, les utilisateurs peuvent rencontrer l'erreur :

error: no member named 'signbit' in the global namespace

Ce problème survient lorsque le compilateur ne parvient pas à localiser le bon en-tête, qui contient la fonction signbit.

Pour résoudre ce problème, il faut s'assurer que le compilateur pointe vers les SDKheaders appropriés.

Solution

  • Vérifiez la version du compilateur.
  • Définissez la variable CMAKE_OSX_SYSROOT sur le chemin correct du SDK à l'aide de la commande xcrun --show-sdk-path. Ce chemin doit être utilisé comme argument pour -isysroot.
  • Dans CMake, cela peut être réalisé en ajoutant la ligne suivante au fichier CMakeLists.txt :
set(CMAKE_CXX_FLAGS "[...] -isysroot /sdk/path")

où /sdk/path est le chemin du SDK obtenu à partir de xcrun.

De plus, la désactivation de la protection de l'intégrité du système (SIP) peut également résoudre le problème.

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