티스토리 뷰


힘들었다. 3일 걸렸다.

맥은 유닉스라는데 ( 정확히는 unix-like ) 왜 이리 빌드가 안되는지.

샘플코드 직접 빌드해보겠다고 두 눈 부릅떠가며 빌드를 시도한지 3일째.

빌드가 가능한 전체 파일은 여기에.

README 를 읽어보면 Mac OS X 10.3 에서 테스트를 했다고 적혀있다.
지금 내가 쓰고 있는 버전은 Mac OS X 10.6.5


뭔지 모르면서 빌드하는건 힘들다.
삽질 후에 남는건 허무함이다.
댓글
  • 프로필사진 김병수 고맙습니다. 저도 빌드를 하다가 걸려서 여길 왔는데.. 2011.04.05 14:02
  • 프로필사진 김병수 안녕하세요. 저도 빌드를 하다가 여길 왔는데 아무리해도 빌드가 안되거요. 저도 맥을쓰고 있는데 똑같은 에러가 나서 말씀하신대로 멕크로도 넣어보고 해도 안되네요. 좀 도와주시면 안될까요? 전 맥 10.7.0에서 컴파일을 하려고 하고 있습니다. 에러는
    ranlib libapue.a
    make[2]: Nothing to be done for `all'.
    make[2]: Nothing to be done for `all'.
    gcc -ansi -I/Users/bkim/documents/unixprogramming/apue.2e/include -Wall -DMACOS -DDEBUG -o call main.o call.o put.o take.o takeput.o escape.o loop.poll.o ../sockets/clconn.o ../lib/libapue.a
    Undefined symbols:
    "_CMSG_LEN", referenced from:
    _recv_fd in libapue.a(recvfd.o)
    _recv_fd in libapue.a(recvfd.o)
    _recv_fd in libapue.a(recvfd.o)
    ld: symbol(s) not found
    collect2: ld returned 1 exit status
    make[2]: *** [call] Error 1
    make[1]: *** [macos] Error 1
    make: *** [all] Error 2

    그리고 말씀하신대로 다음 라인을 apue.h에 넣었습니다.
    #define CMSG_LEN(l) (((unsigned long)((char *)(unsigned long)(sizeof(struct cmsghdr)) + (sizeof(__uint32_t) - 1)) & ~(sizeof(__uint32_t) - 1)) + (l))
    #define _DARWIN_C_SOURCE

    제 이메일은 benkim0@yahoo.com입니다. 꼭 연락좀해 주세요.
    고개숙여 감사 드립니다.
    2011.09.06 12:39
댓글쓰기 폼