0

MinGW64 fortran (gfortran) コンパイラ (.o) で生成されたオブジェクト ファイルを MSVC 2010 にリンクするにはどうすればよいですか?

64 ビット MSVC ソリューションで 64 ビット arpack ライブラリを使用したいだけですが、それを行う他の方法はすべて失敗しました。MSVC は 32 ビット ソリューションの構成で arpack 関数を見つけますが、ランタイム エラーでアプリケーションを起動し、64 ビット ソリューションの構成で arpack 関数をまったく見つけることができません。

4

1 に答える 1

0

簡単な答え: できません。これらのコンパイラは異なる ABI を使用します。つまり、オブジェクト ファイルの形式が異なり、互換性がありません。

可能なことは、Fortran コードから MinGW の DLL を作成できるようにすることです。それを C++ プログラムにインポートしますが、名前のマングリングに注意してください。DLL によってエクスポートされたシンボルをマングルしてはなりません (Fortran に名前のマングリングがあるかどうかはまったくわかりません)。C++ コードでは、DLL からインポートされた関数を「extern C」として宣言して、C++ 側での名前マングリングを防ぐ必要があります。

于 2012-12-06T10:33:36.537 に答える