为什么可以在IOS6.1模拟器中包含和编译而无法在实际的iphone中编译?

我试图包括完成网关提取问题。 在xcode IOS模拟器编译过程中,它可以包含在内,但是在真正的IOS机器中它不能。 我只能在项目中放一个route.h的副本,它真的可以在真机上运行。 但这在模拟器中带来了另一个问题。 它说rt_metrics,rtstat等结构被重新定义,并带有一个信息:’struct rt_metricx’的定义必须在模块’Darwin.net.route’之前导入’才需要’。 我该怎么做才能解决这个问题? 这是我文件中包含的头文件。

#include "route.h" //#include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include "resolv.h" 

出于某种原因,头文件仅存在于iOS模拟器SDK中,而不存在于iOS SDK中。

您可以在项目中放置头文件的副本,并有条件地将其包含在iOS中。

– 编辑 –

 #if TARGET_IPHONE_SIMULATOR #include  #else #include "route.h" #endif 

在我意识到如果你#import两个标题而你甚至不需要担心#if警卫之前我一直在努力解决这个问题。

 #import  #import "route.h" 

您可以在mac中的/ usr / include / net文件夹中找到route.h文件。 只需将其复制到您的xcode项目中即可。 有用 ;)