我使用gcc在Windows平台上使用最新版本的mingw将一些fortran源文件编译到*.lib
和*.dll
。使用的gcc是版本3.输出的结果是arpack_win32.dll
,blas_win32.dll
和lapack_win32.dll
。
然后,我想使用sssimp.f针对arpack_win32.dll
,blas_win32.dll
和lapack_win32.dll
汇编Intel visual fortran compiler for Windows,因为sssimp.f
使用这些dll。但我得到的印象是from Intel support forum) 。
我的印象是否正确?或者只要我可以生成底层的库和dll(无论在哪个编译器和它的年龄),我可以使用它们作为我的基础库和dll,我可以从任何,现代或旧的,编译器?
答案 0 :(得分:1)
g77使用与IVF不同的ABI,是的。因此,除非IVF具有一些g77 / f2c兼容性选项,否则它不会起作用。
最简单的解决方案可能是使用IVF来编译库。
答案 1 :(得分:0)
正如已经指出的那样,混合具有不同调用约定的编译器可能非常困难。
英特尔论坛上的答案指出将一个版本的arpack翻译成Fortran 90 - http://people.sc.fsu.edu/~burkardt/f_src/arpack/arpack.html - 你能用它吗?另请参阅http://people.sc.fsu.edu/~burkardt/f_src/lapack/lapack.html和http://people.sc.fsu.edu/~burkardt/f_src/blas1_s/blas1_s.html
或者英特尔Visual Fortran应该能够使用合适的编译器选项编译Fortran 77。什么语言构造它拒绝?