GCC で生成された DLL は Intel Visual Fortran と互換性がありませんか?
-
23-09-2019 - |
質問
gcc を使用して、いくつかの Fortran ソース ファイルをコンパイルしました。 *.lib
そして *.dll
Windows プラットフォームでは、最新バージョンを使用して、 ミンウ 。使用される gcc はバージョン 3 です。出力結果は次のとおりです arpack_win32.dll
, blas_win32.dll
そして lapack_win32.dll
.
それではコンパイルしたいと思います sssimp.f に対して arpack_win32.dll
, blas_win32.dll
そして lapack_win32.dll
を使用して Windows 用インテル ビジュアル Fortran コンパイラー, 、 なぜなら sssimp.f
それらの DLL を使用します。でも、印象に残ったのは( インテルサポートフォーラムより)これは ない 可能。
私の印象は正しいですか?それとも、基礎となるライブラリと DLL を生成できる限り (どのコンパイラで、どのくらい古いものであっても)、それらをベースのライブラリと DLL として使用でき、最新のライブラリや DLL のいずれからでもリンクできるということでしょうか。古い、コンパイラ?
解決
G77は、はい、IVFとは異なるABIを使用しています。だから、IVFは、それが仕事に行くのではないですいくつかのG77 / F2Cの互換性オプションを持っていない限り。
あなたのための最も簡単な解決策があまりにもライブラリをコンパイルするためにIVFを使用することが考えられます。
他のヒント
すでに指摘したように、異なる呼び出し規約を持つコンパイラーを混合することは、非常に困難になる可能性があります。
インテル フォーラムの回答では、Fortran 90 に翻訳されたバージョンの arpack が指摘されていました。 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 をコンパイルできる必要があります。どのような言語構造を拒否しているのでしょうか?