我有一个在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解决方案的想法都将受到赞赏。谷歌提供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的某些错误。
答案 0 :(得分:3)
一个疯狂的猜测是你的线上出现的一个特殊字符,你可能在XCode 3中使用了一些特殊字符编码,而在XCode 4中打开文件会触发此错误。
要查看此答案是否正确,我建议您在终端中使用cat
或vim
文件,并查看某些特殊字符是否位于此特定行。
如果有效,请告知我们
答案 1 :(得分:2)
Apple软件被打破了。
Apple无视我的3.2.6项目设置,决定使用LLVM 3.0套件而不是GCC 4.2。之前(根据Xcode 3.2.6),由于我广泛使用GCC警告和标志,我特意将项目设置为使用GCC。
我更改了“构建设置”后 - &gt; “编译C / C ++ / Objective”回到GCC 4.2,它有效。
Apple Radar 10278815报道,LLVM Bug 11126报道。希望Apple能在Xcode 5之前修复它。