2011-09-28 2 views
0

저는 Linux 용 Apple에서 개발 한 오픈 소스 Bonjour 프레임 워크를 컴파일하려고했습니다. 내가 가진 문제는 내가 실행할 때 옵션으로 만드는 것입니다 os=linux 나는 다음과 같은 컴파일 오류 얻을 : 내가 구조체 sockddr을 확인했습니다 그것은 참으로 sa_len라는 이름의 회원이 없습니다Linux 용 mDNSResponder 컴파일?

struct sockaddr has no member named 'sa_len'

을 ... 그래서 난 프레임 워크가해야한다고 생각하는 이유에 대해 혼란스러워합니다!

누구든지 Linux 용 mDNSResponder를 컴파일하는 방법에 대해 조언을 해 주실 수 있습니까? 많은 감사합니다.

답변

0

mDNSUNP.h를 보면 sa_len이없는 경우 (예 : Linux의 경우) 매크로 NOT_HAVE_SA_LEN을 정의해야합니다. 귀하의 경우에 정의되지 않은 경우 컴파일 플래그에 -DNOT_HAVE_SA_LEN을 추가하십시오.

0

Linux의 sockaddr 구현에는 sa_len이 없지만 FreeBSD 버전에서는 sa_len이 있습니다. Apple의 구현은 FreeBSD 버전 (parts of OS X pull from FreeBSD and NetBSD)을 기반으로하므로 그 오류가 발생하는 이유는 무엇입니까? 이전에 제안 된대로 #ifdef을 사용하여이를 해결하거나 컴파일 플래그를 추가 할 수 있습니다.