Ошибка компиляции исходного кода сетевого пинга Mac

Я загружаю исходный код сетевой проверки связи Mac OS с сайта Apple: 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' не объявлен (первое использование в этой функции) эта функция)

Я что-то пропустил?


person timy    schedule 08.01.2012    source источник
comment
Какую версию XCode вы используете? (Если я открываю проект в XCode 4.2.1, я тоже получаю ошибки, но они отличаются от ваших).   -  person Frank Schmitt    schedule 08.01.2012


Ответы (1)


Я подумал, что, возможно, вам нужно было импортировать сетевую структуру в свой проект, но Apple не предоставляет никакого описания или информации о загруженном вами проекте.

Для потомков: чтобы добавить фреймворки, выберите проект в левом верхнем углу, затем щелкните цель, выберите «Фазы сборки» в верхней части получившейся страницы, «Связать двоичный файл с библиотеками», «+».

Наконец-то мне удалось собрать его после исчерпывающего поиска в Google, добавив следующее в файл 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)*/

Что забавно пришло из других проектов Apple с открытым исходным кодом, проиндексированных Google.

person GregularExpressions    schedule 08.01.2012
comment
Ничего из информации с сайта Apple с открытым исходным кодом, понятия не имею, какой фреймворк нужно добавить в проект. - person timy; 09.01.2012
comment
Попробуйте эти новые определения, которые я отредактировал в своем ответе, чтобы включить их, я получил их для сборки. - person GregularExpressions; 09.01.2012