I used gcc to compile a few fortran source files into *.lib
and *.dll
on Windows platform, using the latest version of mingw . Th开发者_JS百科e gcc used is version 3. The result of the output is arpack_win32.dll
, blas_win32.dll
and lapack_win32.dll
.
I then want to compile sssimp.f against the arpack_win32.dll
, blas_win32.dll
and lapack_win32.dll
using Intel visual fortran compiler for Windows, because sssimp.f
uses those dlls. But I got the impression ( from Intel support forum) that this is not possible.
Is my impression correct? Or is it that as long as I can produce the underlying libs and dlls ( no matter in which compiler and how old it is), I can use them as my base libs and dlls, and I can link to them from any, modern or old, compiler?
g77 uses a different ABI than IVF, yes. So unless IVF has some g77/f2c compatibility option it's not going to work.
The easiest solution for you is probably to use IVF to compile the libraries too.
As already pointed out, mixing compilers with different calling conventions is likely to be very difficult.
That answer on the Intel Forum pointed out a version of arpack translated to Fortran 90 -- http://people.sc.fsu.edu/~burkardt/f_src/arpack/arpack.html -- can you use that? Also see http://people.sc.fsu.edu/~burkardt/f_src/lapack/lapack.html and http://people.sc.fsu.edu/~burkardt/f_src/blas1_s/blas1_s.html
Or Intel Visual Fortran should be able to compile Fortran 77 using suitable compiler options. What language constructs is it rejecting?
精彩评论