首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >#定义是在为iPhone编译时由Xcode设置的

#定义是在为iPhone编译时由Xcode设置的
EN

Stack Overflow用户
提问于 2008-09-28 23:25:34
回答 2查看 33.2K关注 0票数 67

我正在编写一些半可移植的代码,希望能够在为iPhone编译时能够检测到。所以我想要像#ifdef IPHONE_SDK...这样的东西。

想必Xcode定义了一些东西,但我在项目属性下看不到任何东西,Google也帮不了什么忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-09-28 23:47:20

它在SDK文档中的“有条件地编译源代码”下。

相关的定义是TARGET_OS_IPHONE (他不推荐使用TARGET_IPHONE_SIMULATOR),它们在iOS框架的/usr/include/TargetConditionals.h中定义。在工具链的早期版本中,您必须编写:

#include "TargetConditionals.h"

但在当前的(xCode 6/iOS8)工具链上,这不再是必需的。

因此,举个例子,如果你想只编译一个代码块,如果你是为设备构建的,那么你应该这样做

#if !(TARGET_OS_SIMULATOR)
...
#endif
票数 116
EN

Stack Overflow用户

发布于 2008-10-06 06:01:21

要查看所有已定义的宏,请将此代码添加到构建配置的"Other C Flags“中:

-g3 -save-temps -dD

您将得到一些构建错误,但编译器会将所有定义转储到项目根目录下的.mi文件中。您可以使用grep查看它们,例如:

grep define main.mi 

完成后,不要忘记从构建设置中删除这些选项。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/146986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档