【发布时间】:2014-08-22 02:21:30
【问题描述】:
我在为模拟器 ios 7.1 构建 ios 应用时发现了一个有趣的问题
如果我添加 /usr/include 作为标题搜索路径,它会告诉我 CoreFoundation/CFUserNotification.h 在 CoreFoundation.h 中找不到。但是,正如我们从 CoreFoundation.h 中看到的:
#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE))
#include <CoreFoundation/CFUserNotification.h>
#include <CoreFoundation/CFXMLNode.h>
#include <CoreFoundation/CFXMLParser.h>
#endif
只有当目标是 Mac OS 时,我们才包含这个文件,这意味着构建目标变成了 Mac OS?
如果我删除这个包含路径,就没有这样的问题,那么我可以在模拟器中运行这个 ios 应用程序。为什么?
更新:我注意到ios应用程序的“系统默认头搜索路径”是/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,所以我们不需要使用/usr/include 路径,但是使用 /usr/include 作为头文件搜索路径使其无法编译仍然让我感到困惑。
【问题讨论】:
-
您的问题令人困惑;你暗示编译失败,但说你仍然可以运行应用程序。
-
@trojanfoe 我的意思是如果我删除这个包含路径,那么我可以编译和运行。