向 Xcode Cocoa 项目添加一个空的 .c 文件会导致数千个错误

Posted

技术标签:

【中文标题】向 Xcode Cocoa 项目添加一个空的 .c 文件会导致数千个错误【英文标题】:Adding an empty .c file to Xcode Cocoa project causes thousands of errors 【发布时间】:2011-05-12 19:06:20 【问题描述】:

我的 Cocoa 应用程序有一个 Xcode 项目。到目前为止都是 Objective-C。

我从菜单中添加了一个新的 .c 文件(添加 C 文件和头文件)后问题开始了:test.c 和头文件 test.h。

当我现在尝试编译项目时,出现了数千个错误。所有这些都是对语法错误的抱怨。例如:

NSObjCRuntime.h: Expected identifier or '(' before '@' token

test.ctest.h 这两个新文件不包含任何代码,仅包含默认标头 cmets。我的项目配置一定有什么问题。当我删除这两个文件时,项目编译得很好。

项目语言设置为 C99。还有什么我可以检查的吗?

谢谢, 标记

【问题讨论】:

【参考方案1】:

如果你编译的文件什么都不包含,那么你的问题很可能出在前缀头(扩展名:pch)

所以您只需根据语言(在 pch 中)包装您的库包含:

#ifdef __OBJC__
#import <Foundation/Foundation.h>
#endif

【讨论】:

太棒了,谢谢。【参考方案2】:

检查您的.pch 文件。它正在导入一些没有适当预处理器保护的 Objective-C 标头。

您必须确保在您的预编译头文件中导入的任何 Objective-C 头文件或框架看起来像这样:

#if defined(__OBJC__)
    #import <Cocoa/Cocoa.h>
    #import <CoreData/CoreData.h>
    #import "MyConstants.h"
    ...
#endif

【讨论】:

以上是关于向 Xcode Cocoa 项目添加一个空的 .c 文件会导致数千个错误的主要内容,如果未能解决你的问题,请参考以下文章

Xcode6 中的 Swift 类与 Cocoa Touch 类

Xcode - 如何将 c 库和头文件包含到可可项目中?

从 Xcode 项目中删除单元测试?

从 Cocoa 应用程序项目中导出 XCode 中的 OSX 可执行文件

Xcode 4:如何将静态库目标依赖添加到项目中

找不到 Cocoa 静态库的输出 .a(在 xcode 4 中)