주식회사 누리아이티

정보자산의 보안강화를 위한 3단계 인증 보안SW(BaroPAM) 전문기업인 누리아이티

▶ Tuxedo/기술자료

▶ 링크 타임시 에러 점검

누리아이티 2012. 2. 23. 10:54

   - 해석되지 않은 심볼
     현상 : ld: 0711-317 ERROR: Undefined symbol: .pow
            ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
     원인 : 심볼을 해석하지 못한 에러는 다양한 경우에 발생할 수 있지만 대부분의 이유는 필요한 파일을 제대로 주지 않은 경우이다.
     조치 : 라이브러리에 들어있지 않은 라이브러리 함수를 호출하는 경우 해당하는 함수가 들어있는 라이브러리를 지정해주어야 한다.

   - 동일한 심볼을 중복해서 정의할 경우 프로그래밍 에러가 발생.
     현상 : ld: 0711-224 WARNING: Duplicate symbol:
            .A<int>::f()
            ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
     원인 : 이 경우 링커는 첫번째 심볼 만을 인정하기 때문에 의도하지 않은 결과가 발생할 수 있다. 함수의 이름을 바꾸던가 정적(static) 함수를 사용해야 한다.
     조치 : 심볼이 중복되어 똑같이 정의되어 있으므로 -bhalt:5 옵션을사용해서 링커에게 메시지를 보여주지 않도록 해야 한다.
            -bhalt 링커 옵션은 링킹 과정 중 지정한 숫자보다 적은 에러메시지가 발생하면 이 메시지를 보여주지 않도록 한다.

   - 링킹과정 중 메모리가 충분하지 않을 때
     현상 : ld: 0711-101 fatal error, allocation of bytes fail in routine initsymtab_info.
            There is not enough memory.
     원인 : 대부분 원인은 페이징 공간이 너무 크기가 작거나, 링커명령을 사용한 사용자의 자원제한이 너무 낮아서 발생한다.
     조치 : 위와 같은 에러가 발생하면 다음 사항을 체크해보고 가능하다면 페이징 공간을 늘리는 편이 좋다.
            1.시스템 내의 가용한 페이징 공간
            2.링커를 사용한 사용자가 사용할 수 있는 자원의 제한. 이 상황은 ulimit 명령으로 알아볼 수 있다.

'▶ Tuxedo > 기술자료' 카테고리의 다른 글

▶ 디버깅  (0) 2012.02.23
▶ 런타임 에러 점검  (0) 2012.02.23
▶ 컴파일시 메시지 분석  (0) 2012.02.23
▶ make 수행 시에 나타나는 에러들  (0) 2012.02.23
▶ Compile 관련 사항(AIX)  (0) 2012.02.23