Programing

모듈이 활성화 된 경우 tgmath.h가 작동하지 않습니다.

lottogame 2020. 11. 6. 07:49
반응형

모듈이 활성화 된 경우 tgmath.h가 작동하지 않습니다.


내가 사용으로 보았다 tgmath.h처리 할 CGFloat typedef float/doublearm64를 처리 할 때 혼란.

이 답변 은 나를 위해 전혀 작동하지 않았다는 것을 제외하고 사용 방법에 대한 꽤 좋은 설명을 가지고 있습니다. 어쨌든 내 코드는 여전히 math.h함수를 호출하고 있었습니다.

모든 프로젝트 컴파일러 설정을 살펴본 후 "모듈"기능 ( @import vs #import-iOS 7 ) 을 비활성화하면 모든 것이 작동한다는 것을 알았 습니다. 보다 구체적으로, 프로젝트 설정의 옵션 Enable Modules(C and Objective-C)Apple LLVM 5.1 - Language - Modules드롭 다운 에서 호출 됩니다 .

이 문제의 빠른 예를 보려면 MBProgressHUD와 같은 tgmath를 사용하는 프로젝트를 다운로드 하고 모듈 프로젝트 설정을 활성화하면 어떤 일이 발생하는지 확인하십시오. tgmath.h전화는 정기적으로 교체받을 math.h전화.

내 질문은 :

  1. 모듈이 tgmath를 제대로 가져 오지 못하게하는 이유는 무엇입니까?

  2. 그것을 우회하고 tgmath와 모듈을 모두 사용할 방법이 있습니까? 여전히 사용하고 싶습니다.


문제의 원인은 확실하지 않지만 해결 방법으로 최소한 사용중인 파일에 대해서만 모듈을 비활성화 할 수 있습니다 tgmath.h.

  • Xcode에서 대상의 빌드 단계 탭으로 이동합니다.
  • 소스 컴파일 단계에서 소스 파일을 찾습니다.
  • 소스 파일을 두 번 클릭하고 -fno-modules컴파일러 플래그 팝 오버에 입력 하여 해당 파일에 대한 Clang 모듈을 비활성화합니다.

적어도 이렇게하면 대부분의 프로젝트에서 모듈의 이점을 계속 얻을 수 있습니다. (물론 tgmath.h대부분의 소스 파일이 필요하지 않다고 가정 합니다.)


이미 ctgmath : Link 라는 이름으로 수학 라이브러리에있을 수 있습니다.

참고 URL : https://stackoverflow.com/questions/23333287/tgmath-h-doesnt-work-if-modules-are-enabled

반응형