>  기사  >  백엔드 개발  >  "오류: '전역 네임스페이스에 'signbit'이라는 멤버가 없습니다.' Catalina 업그레이드 후: 해결책은 무엇입니까?"

"오류: '전역 네임스페이스에 'signbit'이라는 멤버가 없습니다.' Catalina 업그레이드 후: 해결책은 무엇입니까?"

Patricia Arquette
Patricia Arquette원래의
2024-11-18 05:34:02130검색

오류: Catalina 업그레이드 후 "전역 네임스페이스에 'signbit'이라는 멤버가 없습니다."

Mojave에서 macOS Catalina로 업그레이드할 때 컴파일할 때 사용자에게 오류가 발생했습니다. header:

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

이 오류는 Catalina가 SIP(시스템 무결성 보호)를 사용하여 /usr/include를 제거하고 보호한다는 사실에서 발생합니다. 따라서 이 디렉토리에서 C 헤더를 찾을 것으로 예상되는 모든 프로젝트는 컴파일에 실패합니다.

해결책:

이 문제를 해결하려면 빌드를 지시해야 합니다. 시스템을 적절한 헤더에 추가하세요.

  1. Xcode가 업데이트되었는지 확인하세요. 잠재적인 비호환성을 방지하려면 최신 버전의 Xcode를 사용하세요.
  2. 설정 CMAKE_OSX_SYSROOT: 다음 방법 중 하나를 사용하여 이 변수를 xcrun --show-sdk-path의 결과로 설정합니다.

    • set(CMAKE_OSX_SYSROOT /sdk/path)
    • set(CMAKE_CXX_FLAGS "[...] -isysroot /sdk/path")

이러한 단계로 문제가 해결되면 CMake에서 이러한 플래그를 설정하기 위한 더 나은 접근 방식을 고려해 보세요. 또한 SIP를 비활성화하면(모험적이긴 하지만) 임시 해결책이 될 수 있습니다. 그러나 /usr/include에 여전히 C 헤더가 필요한 프로젝트에는 버그를 보고하는 것이 좋습니다.

위 내용은 "오류: '전역 네임스페이스에 'signbit'이라는 멤버가 없습니다.' Catalina 업그레이드 후: 해결책은 무엇입니까?"의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.