【问题标题】:<Cocoa/Cocoa.h> location<Cocoa/Cocoa.h> 位置
【发布时间】:2011-05-14 16:12:57
【问题描述】:

我是 Mac OS X 开发的新手。在 XCode/Cocoa 开发人员环境中,每个 Objective-C 项目都以
#import &lt;Cocoa/Cocoa.h&gt;
开头 它工作正常,但我对 Cocoa.h 文件位置感到困惑。我的文件系统上的 Cocoa 文件夹中没有 Cocoa.h 文件。我尝试“查找 / Cocoa/Cocoa.h”和“定位 Cocoa/Cocoa.h”,但没有找到。
谁能给我一个关于编译器如何以及在哪里找到 Cocoa.h 上面#import语句中的头的提示。

谢谢, 恢复 Microsoft Addict

【问题讨论】:

    标签: cocoa xcode search header


    【解决方案1】:

    Cocoa/ 指的是/System/Library/Frameworks/Cocoa.framework/Headers/ 文件夹。如果您检查您的项目,在“框架”下,您将看到您包含的框架,并且 cntrl-click 以“显示在 finder”将有所帮助。

    【讨论】:

    • 您也可以将插入点放在&lt;&gt; 之间并按⇧⌘D(快速打开),然后⌘-单击新窗口的标题栏以查看文件的位置或转到其中一个它的祖先目录。
    • 感谢彼得和斯蒂芬的帮助。凭借您的专业知识,我在 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Cocoa.framework/Headers 中找到了我的 Cocoa.h。 XCode 如何将路径映射到 Cocoa/ 以解析导入语句仍然是一个谜。
    • @pcmaniac:Cocoa 是框架的名称(即它出现在“.framework”之前),编译器知道头文件位于框架的 Headers 目录中。这就是它映射路径的方式。
    • @Chuck:命名约定听起来像是非常弱的映射形式。一定有一个plist什么的。只需尝试将一些 iPhoneOS 相关框架(例如 UIKit)放到 MacOSX 开发或系统库中。编译器本身不会找到 UIKit/UIKit.h
    • @pcmaniac 您必须在目标的构建设置下包含您正在使用的库的“基础 SDK”。如果从 10.6 改成 10.5,则指向了完全不同的 Cocoa.framework。而Naming Conventions 是与 Cocoa 的游戏名称。 Camel 是 @properties 之类的标准。
    【解决方案2】:

    我终于在Xcode Build Setting Reference Header-Map Build Settings 部分找到了答案。
    结果是 XCode 在幕后“神奇地”将标头映射到在 .hmap 文件中存储信息的路径,以将 .hmap 文件传递​​给 gcc(编译器)。
    环境变量 HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES 必须设置为在#import 语句中使用 Cocoa/Cocoa.h 语法。
    不,Finder 不显示 .hmap 文件 - 使用终端命令来获取它们。

    【讨论】:

    • 更正:您可以在 Finder 中导航到 .hmap 文件,但 Spotlight 找不到它们。
    • 从 XCode IDE 定位 .hmap 文件:
    • 1.打开构建结果 2. Cmnd-单击并选择打开最新结果作为转录文本文件 3. 在构建日志文件中找到“.hmap”或滚动到 gcc 调用并查找 -I 参数
    【解决方案3】:

    Spotlight 似乎也找到了我在系统上寻找的任何头文件。

    【讨论】:

      猜你喜欢
      • 2012-05-18
      • 2011-09-25
      • 2013-03-27
      • 2010-11-12
      • 2011-07-14
      • 1970-01-01
      • 2016-01-06
      • 1970-01-01
      • 2014-08-11
      相关资源
      最近更新 更多