Mojave에서 macOS Catalina로 업그레이드할 때 컴파일할 때 사용자에게 오류가 발생했습니다.
error: no member named 'signbit' in the global namespace
이 오류는 Catalina가 SIP(시스템 무결성 보호)를 사용하여 /usr/include를 제거하고 보호한다는 사실에서 발생합니다. 따라서 이 디렉토리에서 C 헤더를 찾을 것으로 예상되는 모든 프로젝트는 컴파일에 실패합니다.
해결책:
이 문제를 해결하려면 빌드를 지시해야 합니다. 시스템을 적절한 헤더에 추가하세요.
설정 CMAKE_OSX_SYSROOT: 다음 방법 중 하나를 사용하여 이 변수를 xcrun --show-sdk-path의 결과로 설정합니다.
이러한 단계로 문제가 해결되면 CMake에서 이러한 플래그를 설정하기 위한 더 나은 접근 방식을 고려해 보세요. 또한 SIP를 비활성화하면(모험적이긴 하지만) 임시 해결책이 될 수 있습니다. 그러나 /usr/include에 여전히 C 헤더가 필요한 프로젝트에는 버그를 보고하는 것이 좋습니다.
위 내용은 "오류: '전역 네임스페이스에 'signbit'이라는 멤버가 없습니다.' Catalina 업그레이드 후: 해결책은 무엇입니까?"의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!