gpt4 book ai didi

ios - 如果启用了模块,tgmath.h 将不起作用

转载 作者:IT老高 更新时间:2023-10-28 11:26:05 26 4
gpt4 key购买 nike

我研究过在处理 arm64 时使用 tgmath.h 来处理 CGFloat typedef float/double 困惑。

This answer对如何使用它有一个很好的描述,只是它对我根本不起作用。无论如何,我的代码仍在调用 math.h 函数。

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

要查看此问题的快速示例,请下载使用 tgmath 的项目 such as MBProgressHUD ,并查看启用模块项目设置时会发生什么。 tgmath.h 调用被常规 math.h 调用替换。

我的问题是:

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

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

最佳答案

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

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

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

关于ios - 如果启用了模块,tgmath.h 将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23333287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com