如果启用了模块,则tgmath.h不起作用

Dim*_*ima 69 macos objective-c llvm-clang ios

在处理arm64时,我考虑使用它tgmath.h来处理CGFloat typedef float/double混乱.

这个答案对如何使用它有很好的描述,除了它对我来说根本不起作用.无论如何,我的代码仍在调用math.h函数.

在花了一些时间查看所有项目编译器设置后,我发现禁用"模块"功能(@import vs #import - iOS 7)使一切正常.更具体地说,在项目设置中的选项被称为Enable Modules(C and Objective-C)Apple LLVM 5.1 - Language - Modules下拉列表中.

要查看此问题的快速示例,请下载使用tgmath的项目,例如MBProgressHUD,并查看启用模块项目设置时会发生什么.该tgmath.h呼叫会被替换成普通math.h电话.

我的问题是:

  1. 为什么模块会阻止tgmath正确导入?

  2. 有没有办法解决它并同时使用tgmath和模块?我仍然希望能够使用它们.

dam*_*ewl 1

它可能已位于您的数学库中,名称为 ctgmath:链接

  • 不幸的是,事实并非如此。 (3认同)