struct addrinfo, необъявленная в Xcode 4 - PullRequest
1 голос
/ 24 мая 2011

Я сталкиваюсь с некоторыми странными ошибками, возникающими при программировании сокетов с использованием Xcode 4. Я получаю ошибку, что addrinfo не объявлен, несмотря на то, что я просто копирую код из другого работающего проекта (при использовании Xcode 3 ). Проект в основном на Objective-C, но я протестировал создание другой платформы с простым C, и ошибка все еще остается.

У меня есть следующие рамки:

  • ApplicationServices.framework
  • Cocoa.framework
  • AppKit.framework
  • Foundation.framework

Также не добавлены флаги компоновщика.

Однако существуют и другие функции, такие как getaddrinfo (который использует сам addrinfo!). Есть идеи?

Ответы [ 3 ]

3 голосов
/ 26 мая 2011

Эта проблема не была связана с IDE, это была языковая проблема.То, как обрабатываются структуры, очевидно отличается в C (и, следовательно, Objective-c) и C ++ (которые были в предыдущих проектах =. Поэтому я изменил строку

addrinfo hints;

на:

struct addrinfo hints;
1 голос
/ 24 мая 2011

У вас есть правильный импорт?

#import <netinet/in.h>
#import <sys/socket.h>
0 голосов
/ 24 мая 2011

Быстрый grep показывает, что struct addrinfo объявлена ​​в . Попробуйте явно включить это. (Ваш проект Xcode 3, возможно, включил это или некоторый другой заголовок, который включает это, в свой файл префикса.)

...