GCC Produziert Dlls nicht kompatibel mit Intel von Visual Fortran?
-
23-09-2019 - |
Frage
ich gcc verwenden einige Fortran-Quelldateien in *.lib
und *.dll
auf Windows-Plattform zu kompilieren, die neueste Version unter Verwendung von mingw . Die gcc verwendete Version 3. Das Ergebnis der Ausgabe ist arpack_win32.dll
, blas_win32.dll
und lapack_win32.dll
.
Ich möchte dann zu kompilieren sssimp.f gegen die arpack_win32.dll
, blas_win32.dll
und lapack_win32.dll
mit Intel Visual fortran Compiler für Windows weil sssimp.f
verwendet diesen DLLs. Aber ich habe den Eindruck ( von Intel Support-Forum ), dass dies nicht möglich.
Ist mein Eindruck richtig ? Oder ist es, dass, solange ich die zugrunde liegenden Libs und DLLs erzeugen kann (egal in welcher Compiler und wie alt es ist), habe ich sie als meine Basis Libs und DLLs verwenden können, und ich kann von jedem auf sie verweisen, modern oder alt, Compiler?
Lösung
g77 verwendet eine andere ABI als IVF, ja. Also, wenn IVF hat einig g77 / f2c Kompatibilität Option, es ist nicht zur Arbeit gehen.
Die einfachste Lösung für Sie ist wahrscheinlich IVF zu verwenden, auch die Bibliotheken zu kompilieren.
Andere Tipps
Wie bereits erwähnt, Compiler mit verschiedenen Aufrufkonventionen Mischen ist wahrscheinlich sehr schwierig sein.
Die Antwort auf dem Intel-Forum zeigte eine Version von arpack zu Fortran 90 übersetzt aus - http://people.sc.fsu.edu/~burkardt/f_src/arpack/arpack.html - können Sie dieses? Auch finden Sie unter http://people.sc.fsu.edu/~ burkardt / f_src / lapack / lapack.html und http : //people.sc.fsu.edu/~burkardt/f_src/blas1_s/blas1_s.html
oder Intel von Visual Fortran sollte in der Lage sein, Fortran zu kompilieren 77 geeignete Compiler-Optionen. Welche Sprachkonstrukte lehnt es?