【问题标题】:Xcode 4: "error: unknown type name 'BOOL'; did you mean 'BOOL'?"Xcode 4:“错误:未知类型名称'BOOL';你的意思是'BOOL'吗?”
【发布时间】:2011-10-13 08:34:44
【问题描述】:

我有一个在 Xcode 3.2.x 下运行良好的项目。在 Xcode 4.2 下,编译时出现以下错误:

"error: unknown type name 'BOOL'; did you mean 'BOOL'?"

我可以右键单击有问题的BOOL,Xcode 将跳转到 Apple 的定义。 BOOL 是在 <objc/objc.h> 中定义的,所以我将它包含在我的源文件中(尽管我使用的是带有 UIKit.h 和 Foundation.h 的预编译头文件)。仍然没有乐趣 - 编译错误仍然存​​在。

任何关于 Xcode 4 变通方法的想法都将不胜感激。 Google 提供 0 次点击。

编辑:添加有问题的代码以消除任何歧义。

// AppConstants.h
typedef enum { ThreadPriorityLow = NSOperationQueuePriorityLow, ThreadPriorityNormal = NSOperationQueuePriorityNormal,
    ThreadPriorityHigh = NSOperationQueuePriorityHigh, ThreadPriorityDefault = ThreadPriorityNormal } ThreadPriority;

static inline BOOL IsValidThreadPriority(ThreadPriority priority)
{
    return priority == ThreadPriorityLow || priority == ThreadPriorityNormal || priority == ThreadPriorityHigh;
}

编辑:在查看 Emacs 和 HexFiend 下的源代码以查找非法字符并没有找到(源代码是 8 位干净的)后,我倾向于认为这是由于 Apple 的某种错误造成的。

【问题讨论】:

  • 哪一行代码触发了这个错误?你在那一行右击了哪个BOOL
  • @BoltClock - “你右键点击那一行了吗” - 我当然做到了:)
  • 包含 objc.h 后是否仍然出现错误?你的问题在这一点上有点模棱两可。
  • @JeremyP - 好吧,我咬。如果我已经解决了问题,为什么还要问这个问题?原谅我的粗心——Apple 今晚也把我的 iPod 弄坏了。
  • @noloader:这个问题可以理解为“我通过包含 objc.h 让它工作了,但有没有更好的解决方案”

标签: objective-c xcode compiler-errors


【解决方案1】:

猜测是您的行中出现了一个特殊字符,您可能在 XCode 3 中使用了一些特殊字符编码,而在 XCode 4 中打开文件会触发此错误。

要查看此答案是否正确,我建议您在终端中使用catvim 文件,看看是否有一些通配符位于此特定行。

让我们知道这是否有效

【讨论】:

  • @apouche - 在 emacs 下,看起来所有字符都是 8 位干净的。
  • (早期版本)当遇到带有 BOM 的标头时会发出叮当声。花了几个小时才找到它,我不得不通过 clang 的主干构建发送它来定位问题。
  • @apouche - 在 HexFiend 下,违规行上的所有字符都是 8 位纯字符(7 位 ASCII)。
  • HexFiending 是个好主意,你的问题似乎比起初看起来更棘手。如果您找到解决方案,请随时通知我们
  • @Justin - 你应该已经回答了 - 这是一个损坏的 LLVM 3.0 前端。
【解决方案2】:

这是损坏的 Apple 软件。

Apple 无视我的 3.2.6 项目设置并决定使用 LLVM 3.0 套件而不是 GCC 4.2。以前(在 Xcode 3.2.6 下),由于我大量使用 GCC 警告和标志,我专门将项目设置为使用 GCC。

在我将“构建设置”->“为 C/C++/Objective 编译”改回 GCC 4.2 后,它起作用了。

Apple Radar 10278815 已报告,LLVM Bug 11126 已报告。希望 Apple 会在 Xcode 5 之前修复它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 2021-06-01
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    相关资源
    最近更新 更多