tag name keywords hacer etiquetas ejemplos como ios objective-c macos llvm-clang

ios - name - tgmath.h no funciona si los módulos están habilitados



meta tags seo (2)

No estoy seguro de cuál es la causa del problema, pero como solución alternativa, al menos podría deshabilitar los módulos solo para los archivos donde está usando tgmath.h :

  • Ve a la pestaña Crear fases del objetivo en Xcode.
  • En la fase de compilación de fuentes, busque los archivos fuente.
  • Haga doble clic en el archivo de origen y escriba -fno-modules en -fno-modules Indicadores de compilación para deshabilitar los módulos de Clang para ese archivo.

Al menos de esta manera aún obtendría los beneficios de los módulos en la mayor parte de su proyecto. (Esto supone, por supuesto, que no necesita tgmath.h en la mayoría de sus archivos fuente).

tgmath.h uso de tgmath.h para manejar el CGFloat typedef float/double lío CGFloat typedef float/double cuando se trata de arm64.

Esta respuesta tiene una descripción bastante buena de cómo usarla, excepto que no funcionó en absoluto para mí. No importa qué, mi código aún llamaba a las funciones math.h

Después de pasar algún tiempo mirando todas las configuraciones del compilador del proyecto, descubrí que deshabilitar la función "Módulos" ( @import vs #import - iOS 7 ) hace que todo funcione. Más específicamente, la opción en la configuración del proyecto se llama Enable Modules(C and Objective-C) en el menú desplegable Apple LLVM 5.1 - Language - Modules .

Para ver un ejemplo rápido de este problema, descargue un proyecto que use tgmath, como MBProgressHUD , y vea qué sucede cuando habilita la configuración del proyecto de los módulos. Las llamadas tgmath.h se reemplazan con llamadas math.h regulares.

Mi pregunta es:

  1. ¿Por qué los módulos impiden que tgmath se importe correctamente?

  2. ¿Hay alguna forma de evitarlo y usar tanto tgmath como módulos? Me gustaría poder usarlos.


Puede que ya esté en tu biblioteca de matemáticas con el nombre ctgmath: Link