添加/ usr / include作为ios app的包含路径

时间:2014-08-22 02:21:31

标签: ios macos

当我为模拟器ios 7.1

构建ios应用程序时,我发现了一个有趣的问题

如果我将/ usr / include添加为标题搜索路径,它会告诉我 CoreFoundation.h 中找不到 CoreFoundation / CFUserNotification.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应用程序。为什么呢?


更新:我注意到&#34;系统默认标题搜索路径&#34;对于ios应用程序是/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,所以我们不需要使用/ usr / include路径,但是使用/ usr / include为标题搜索路径使它无法编译剧照让我困惑。

3 个答案:

答案 0 :(得分:0)

我认为当你在模拟器ios 7.1中运行它时,编译器将在模拟器ios 7.1中搜索/ usr / include,但它不存在,而你的目标是Mac OS,编译器不会抱怨。 / p>

答案 1 :(得分:0)

相信与否<{1>} 两者 Mac和iOS。

有关详细信息,请参阅this SO answer

答案 2 :(得分:0)

对我而言,当我在目标上添加CFLAGS和C ++ FLAGS而不是我的项目时,就发生了这种情况。一旦我将它们放在项目中并将它们从目标中删除,问题就会消失。