> 백엔드 개발 > C++ > 본문

Catalina로 업그레이드한 후 'No Member Named signbit' 오류가 발생하는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-16 04:12:03
원래의
223명이 탐색했습니다.

Why Am I Getting

오류: 사용 중 헤더는 전역 네임스페이스에 signbit라는 이름의 멤버를 생성하지 않습니다

Catalina로 업그레이드한 후 라이브러리를 실행하면 전역 네임스페이스에 signbit, fpclassify 및 isfinite라는 멤버가 없음을 나타내는 오류가 발생합니다.

원인:

이 오류는 다음으로 인해 발생할 수 있습니다. CMAKE_OSX_SYSROOT 설정이 잘못되었습니다. Catalina에서는 일반적으로 C 헤더가 있는 /usr/include 디렉터리가 제거되어 SIP에 의해 보호됩니다. 이는 /usr/include에서 C 헤더를 찾을 것으로 예상되는 프로젝트가 컴파일에 실패한다는 것을 의미합니다.

해결책:

문제를 해결하려면 빌드를 지정해야 합니다. 올바른 헤더 위치로 시스템을 이동하세요. 따라야 할 단계는 다음과 같습니다.

  1. Xcode가 최신인지 확인하세요.
  2. -isysroot /sdk/path를 사용하세요. 여기서 /sdkpath는 xcrun --show의 출력입니다. -sdk-path, 컴파일러 플래그로.
  3. In CMake:

    (a) CMAKE_OSX_SYSROOT를 /sdk/path로 설정합니다.

    또는

    (b) -isysroot /sdk/path를 사용하여 CMAKE_CXX_FLAGS를 설정합니다. 플래그.

추가 옵션:

위 해결 방법이 효과가 없으면 SIP를 비활성화해 볼 수 있지만 권장되지는 않습니다. 답변 텍스트에 제공된 링크를 참조하면 방법에 대한 지침을 찾을 수 있습니다.

위 내용은 Catalina로 업그레이드한 후 'No Member Named signbit' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿