Linux에서 현재 Fortran 컴파일러(예: gfortran)와 작동하도록 "호환되지 않는" i386 f77 라이브러리를 얻으려면 어떻게 해야 합니까?

Linux에서 현재 Fortran 컴파일러(예: gfortran)와 작동하도록 "호환되지 않는" i386 f77 라이브러리를 얻으려면 어떻게 해야 합니까?

elf32-i386 라이브러리를 실행하고 싶습니다libkernlib.a최신 Ubuntu Linux 시스템에서 Fortran 77 프로그램을 사용합니다. 내가 아는 한, gfortranFortran 77과 하위 호환되지만 라이브러리에서 작동하도록 하는 데 문제가 있습니다. -ff2c, -fbackflash 등을 시도했지만 모든 것이 여전히 나에게 제공됩니다.

$ gfortran -ff2c -O -o output f77fortran.f -lkernlib

/usr/bin/ld: skipping incompatible //usr/local/lib/libkernlib.a when searching for -lkernlib
/usr/bin/ld: canot find -lkernlib

나는 또한 사용해 보았습니다 fort77. 작동하는 것을 찾을 수 없습니다 f77.gfortranf77 이나 다른 것을 사용하여 f77 프로그램과 해당 라이브러리를 실행하는 방법을 아는 사람이 있다면 좋을 것입니다.

그런데 libkernlib.a 라이브러리에는 "라이브러리" 링크의 이전 버전이 있습니다.이 페이지, 그러나 내가 시도한 모든 것은 동일한 오류를 발생시켰고 모두 i386이었습니다(나는 이것을 통해 이것을 발견했습니다 objdump -f libkernlib.a).

컨텍스트: 이것은 Mathematica의 일부입니다.프로젝트오래된 코드를 사용하세요.

답변1

그것은 실제로 -m32나보다 더 잘 작동하며 -ff2c전혀 사용할 필요가 없습니다.-ff2c

$ gfortran -m32 -O -o output f77fortran.f -lkernlib 

그러다가 32비트 또는 f77 호환성과 관련된 몇 가지 다른 버그를 발견했는데, 이는 패키지를 추가하여 해결되었습니다.

  • lib32gfortran-4.8-dev
  • gcc-multilib

관련 정보