ns-2 2.29 all-in-one 버전을 데비안 4.0 환경에서 빌드하면 다음과 같은 에러가 발생합니다.

checking system version (for dynamic loading)... ./configure: line ????: syntax error near unexpected token `('
./configure: line ????: ????


여기서 ???? 라고 표기한 부분은 같은 종류의 에러가 여러군데에서 나는데 각기 줄 번호도 다르고 해당 줄의 내용도 다르기 때문에 그렇게 표기하였습니다.

이는 configure 파일을 쉘 처리기인 /bin/sh (보통은 /bin/bash로 심볼릭 링크가 되어 있지요) 읽어서 처리하는 과정에서 최근 버전의 bash와 이전 버전의 bash가 약간 다르게 동작하기 때문입니다. 에러가 나는 문장의 예는 다음과 같습니다.

system=MP-RAS-`awk '{print }' /etc/.relid'`

꼼꼼이 따옴표의 개수를 세보면 알겠지만 쓸데 없는 따옴표가 하나 더 있습니다. 즉, 맨 뒤에서 두번째 따옴표(')가 필요가 없습니다. (그런데 이전 버전의 bash에서는 이게 필요했다네요. 왜 그랬을까나...) 따라서, 해당 따옴표를 쓱 지워주면 빌드가 잘 됩니다.

문제는 이런 식으로 에러 나는 곳이 여러 곳이라 모두 찾아서 지워줘야 된다는거지요. ㅠㅠ

posted by 신묘군

댓글을 달아 주세요

  1.  Addr  Edit/Del  Reply 신묘군

    2.29.3 버전 이후로는 그런 문제가 없네요.

    g++/gcc 의 버전과 충돌 문제도 2.32 버전에서는 없음.

    2008.03.12 09:56
  2.  Addr  Edit/Del  Reply Joongsoo

    저도 2.28 버전 설치할 때 저것 때문에 하루를 날려버린 기억이 있습니다. ㅠㅠ
    bash가 최근 버전에선 스크립트 문법 체크가 강화됐다고 하더라구요. 제발 버전별로 다르게 동작하는 일 좀 없었음 좋겠습니다 .ㅎ

    2008.03.13 01:11
  3.  Addr  Edit/Del  Reply 하늘을 닮은 호수

    전 대학원때 2.19 이후로 깔아본 적이 없는데..
    많이 바뀌었군요?!
    근데, 어떤 일을 하시는데, ns-2까지 사용하시나요?! ㅎㅎ

    2008.03.13 09:49