GCC Produced Dlls Not Compatible with Intel Visual Fortran?
-
23-09-2019 - |
문제
I used gcc to compile a few fortran source files into *.lib
and *.dll
on Windows platform, using the latest version of mingw . The 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?