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

我看着使用tgmath.h处理与tgmath.h处理CGFloat typedef float/double乱。

这个答案对如何使用它有一个很好的描述,除了它对我没有任何作用。 不pipe怎样,我的代码仍然在调用math.h函数。

花了一些时间看看所有的项目编译器设置后,我发现禁用“模块”function( @import vs #import – iOS 7 )使这一切工作。 更具体地说,项目设置中的选项称为Apple LLVM 5.1 - Language - Modules下拉菜单中的Enable Modules(C and Objective-C)

要查看此问题的简单示例,请下载使用tgmath的项目( 如MBProgressHUD) ,并查看启用模块项目设置时会发生的情况。 tgmath.h调用被定期的math.h调用取代。

我的问题是:

  1. 为什么模块不能正确导入tgmath?

  2. 有没有办法避开它,并使用tgmath和模块? 我想仍然可以使用它们。

2 Solutions collect form web for “如果启用了模块,则tgmath.h不起作用”

我不确定是什么导致了这个问题,但作为一种解决方法,你至less可以禁用你正在使用tgmath.h文件的模块:

  • 在Xcode中导航到目标的Build Phases选项卡。
  • 在“编译源”阶段下,find源文件。
  • 双击源文件并在Compiler Flagspopup窗口中键入-fno-modules以禁用该文件的Clang模块。

至less这样你在大部分项目中仍然可以获得模块的好处。 (当然,这是假设您在大多数源文件中不需要tgmath.h 。)

它可能已经在你的math库中名为ctgmath: Link

  • Objective-C中的自动引用计数不会阻止或最小化什么样的泄漏?
  • 从命令行(Mac OS X)打开新的“terminal”选项卡
  • 在Mac OS Finder中打开terminal
  • 如何将Caps Lock键重新映射到OS X 10.8中的Control?
  • 哪些条件编译用来在Mac和iPhone之间切换特定的代码?
  • 鼠标select后如何从tmux输出复制到系统剪贴板?
  • bash:pip:命令未find
  • 我如何让鼠标select在Mac上的emacs和iTerm2上工作?
  • Mac OS X - EnvironmentError:找不到mysql_config
  • Maven在Mac OS X上安装
  • 如何closures这个SSH隧道?