如果启用了模块,则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

  • 安装Jekyll - 原生扩展版本时出错
  • 你在OSX上保留自己的脚本?
  • 如何让dtrace以非根权限运行跟踪的命令?
  • Postgres - FATAL:数据库文件与服务器不兼容
  • OS Xterminal:Meta key + altfunction同时
  • 如何在Mac OS X 10.6中制作硬件蜂鸣声
  • XAMPP 1.8.2-2 Apache Web Server不会启动,总是立即停止
  • Android模拟器在Mac上崩溃
  • 什么使钥匙串项目独特(在iOS中)?
  • 错误:ANDROID_HOME未设置,“android”命令不在PATH中。 您必须至less满足以下条件之一。
  • Xcode项目格式:3.1,3.2,6.3和8.0有什么区别?