1

Mac OSネットワークのpingソースコードをAppleからダウンロードします:http ://www.opensource.apple.com/tarballs/network_cmds/network_cmds-356.8.tar.gz

xcodeでコンパイルしますが、10.7と10.6の両方でエラーが発生します。

'IP_NO_IFT_CELLULAR' undeclared(この関数での最初の使用)
' SO_TRAFFIC_CLASS' undeclared(この関数での最初の使用)
' SO_RECV_TRAFFIC_CLASS' undeclared(この関数での最初の使用)
' SO_TRAFFIC_CLASS' undeclared(この関数での最初の使用)

私は何か見落としてますか?

4

1 に答える 1

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 プロジェクトからのものでした。

于 2012-01-08T16:38:19.337 に答える