我想运行 elf32-i386 库libkernlib.a在我最新的 Ubuntu Linux 机器上使用 Fortran 77 程序。据我所知,gfortran
它向后兼容 Fortran 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
有效的。如果有人知道如何运行 f77 程序及其库,无论是使用gfortran
还是其他东西,那就太好了。
顺便说一句,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