[완료] f77에서 sleep()이 undefined reference라고 나옵니다...

parkon의 이미지

어떤 패키지(PREPRO) 인스톨 하는데요, 인스톨하기 위해 make하면 포트란의 sleep이 undefined 되었다고 나옵니다.

그래서 추적 끝에 다음과 같은 간단한 프로그램을 만들었는데요,

$ cat test.f

c23456
      program test
      call sleep(1)
      stop
      end

컴파일 하면 아래와 같이 나옵니다.

$ f77 test.f
MAIN test:
test.o: In function `MAIN__':
fort77-10753-1.c:(.text+0xa): undefined reference to `sleep_'
collect2: ld returned 1 exit status

구글 찾아도 별로 단서가 안보이고..., 누가 힌트 좀 주시면 좋겠습니다.

OS는 Ubuntu 9.04이고 64비트 pc입니다.

참고로, f95에서 하면 저 위 테스트 프로그램은 잘 되는데, 문제는 제가 깔려는 패키지가 f77로 컴파일된 라이브러리를
링크하고 있어서 대안이 안되는 군요.

parkon의 이미지

해결 했습니다.

우분투에서 어느 버젼 이상(8.??)부터는 f77이 gnu fortran compiler가 아니라 fort77로 링크되어 있고,

9.04나 9.10에서 "진짜" f77/g77을 까는 방법은

http://0x5f.blogspot.com/2009/10/install-g77-in-ubuntu-904-jaunty.html

위 링크에 잘 나와 있군요.