关于ipad:iOS模拟器中的头文件存在,但iOS设备上没有……?

Header files in iOS simulator present, but not there on iOS device...?

我创建了一个简单的 iOS 程序,它可以顺利编译并在 iPad 模拟器上运行良好。当我告诉 XCode 4 使用我连接的 iPad 设备时,无法编译相同的程序。问题似乎是当我尝试使用附加的 iPad 时找不到几个头文件。

以下是iPad设备上无法定位的头文件(摘自相关的include语句):

1
2
3
#include <sys/socketvar.h>
#include <netinet/tcp_fsm.h>
#include <netinet/tcp_var.h>

因此,例如,我收到的错误消息类似于

Sys/socketvar.h: No such file or directory

请不要被文件名牵着nose走……我在我的程序中做了一些与套接字相关的低级操作,无法使用 Apple 提供的高级 API。

我的问题是:什么给了?即,为什么我能够在 iPad 模拟器上运行这个程序(利用上面提到的三个头文件),但不能在实际的 iPad 上运行?另外,是否有其他位置可以在物理 iOS 设备上引用这些头文件?


感谢您的反馈——解决方案是简单地花一些时间遍历头文件依赖项并手动重新创建丢失的文件。最后,有七个(不是世界末日可以手动争吵),我的程序在 iPad 模拟器和物理设备上都可以顺利编译和执行。

不过,我肯定希望物理 iOS 设备和模拟器上可用的头文件之间有更好的一致性!然而,公平地说,我可能属于真正需要使用此类低级网络 API 的开发人员中的一小部分。