Mac网络ping源代码编译错误

时间:2012-01-08 09:24:14

标签: c xcode macos ping icmp

我从Apple下载了Mac OS网络ping源代码:http://www.opensource.apple.com/tarballs/network_cmds/network_cmds-356.8.tar.gz

并在xcode中编译,但在10.7和10.6中都会出错,

  

'IP_NO_IFT_CELLULAR'未声明(首次使用此功能)
  'SO_TRAFFIC_CLASS'未声明(首次使用此功能)
  'SO_RECV_TRAFFIC_CLASS'未声明(首次使用此功能)
  'SO_TRAFFIC_CLASS'未声明(首次使用此功能)

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我认为您可能需要将网络框架导入到项目中,但Apple不提供有关您下载的项目的任何说明或信息。

为了后人的缘故: 要添加框架,请选择左上角的项目,然后单击您的目标,从结果页面的顶部选择“构建阶段”,“将二进制文件链接到库”,“+”。

通过在ping.c文件中添加以下内容(标记为错误的文件),我终于设法通过详尽的谷歌搜索来构建它:

#define IP_NO_IFT_CELLULAR  6969 /* for internal use only */
#define IP_NO_IFT_PDP       IP_NO_IFT_CELLULAR /* deprecated */
#define SO_TRAFFIC_CLASS        0x1086      /* Traffic class (int)*/
#define SO_RECV_TRAFFIC_CLASS   0x1087      /* Receive traffic class (bool)*/

其他有趣的来自Google编入索引的其他开源Apple项目。