当我为模拟器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为标题搜索路径使它无法编译剧照让我困惑。
答案 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而不是我的项目时,就发生了这种情况。一旦我将它们放在项目中并将它们从目标中删除,问题就会消失。