Cocoa/Cocoa.h未找到(错误)

7

我已经对此进行了大量研究,只发现人们在iPhone上构建可可应用程序时抱怨此错误。

最近我获取了Mac版Colloquy的源代码,并按照其要求完成了所有操作(但是出现了“Cocoa/Cocoa.h文件未找到”)。

这是导入所有内容的代码块。

#define ENABLE(FEATURE) (defined(ENABLE_##FEATURE) && ENABLE_##FEATURE)
#define SYSTEM(NAME) (defined(SYSTEM_##NAME) && SYSTEM_##NAME)

#define LIKELY(x) __builtin_expect((x) ? 1 : 0, 1)
#define UNLIKELY(x) __builtin_expect((x) ? 1 : 0, 0)

#define SYSTEM_MAC 1

#ifdef __OBJC__

#ifdef COMMAND_LINE_UTILITY
#import <Foundation/Foundation.h>
#else
#import <Cocoa/Cocoa.h>
#endif

#import "NSCharacterSetAdditions.h"
#import "NSDataAdditions.h"
#import "NSDictionaryAdditions.h"
#import "NSMethodSignatureAdditions.h"
#import "NSNotificationAdditions.h"
#import "NSObjectAdditions.h"
#import "NSScannerAdditions.h"
#import "NSStringAdditions.h"
#endif

#import "MVUtilities.h"

#if !defined(__unsafe_unretained)
#define objc_unretainedObject(object) (id)(object)
#endif

我已重新链接框架,所以不需要问我是否尝试过了。 :)
非常感谢您的帮助 :D
2个回答

25

您是否正在尝试为iOS构建Colloquy?如果不是,请跳过第一部分。


您的问题在于正在导入Cocoa/Cocoa.h。这实际上有两个问题:

  1. Cocoa是Mac开发框架,它在iOS上不存在。
  2. iOS没有统一的框架。对于iOS,没有像Mac OS X的Cocoa.framework那样的CocoaTouch.framework;您需要针对每个框架分别导入其头文件并链接到每个特定的框架。

因此,在将SDK从Mac SDK更改为iOS SDK后,删除Cocoa.framework和导入Cocoa.h,并添加Foundation和UIKit(以及任何其他所需的框架)并导入它们的头文件。


特别是针对Colloquy的情况

Colloquy主干中有两个项目:一个用于Mac OS X,另一个用于iOS。确保您正在打开并尝试构建正确的项目。

如果您有意尝试构建Mac项目,并且构建失败了,请确保已安装必要的Mac SDK。检查项目的构建设置以查看它们的项目使用哪种,然后从您的Xcode磁盘映像中安装它。(如果您通过MAS安装了Xcode,则我不知道您需要做什么或是否需要做任何事情。)


0

我曾经遇到过同样的问题,后来我安装了XCode命令行工具,问题就解决了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接