0

fortranとcコードの素敵なメッシュであるプログラムを入手しました。このプログラムをコンパイルするには、ソフトウェアベンダーからプリコンパイルされた一連のライブラリが必要です。これには、特にIntel MKL、MPICH2などが含まれます。Linuxでは、すべてが正常に機能します。しかし、Windowsでは私は立ち往生しています:

コマンドラインを使用すると、次の2つの方法でifortを使用してプログラムをコンパイルできます。
[ A ] ifort / Qlowercase / assert:underscore .......
[ B ] ifort / Quppercase / assert:nounderscore...。 ...。

オプションAを使用することにした場合、一部の外部ライブラリは大文字のnounderscoreを使用してコンパイルされ、これらのシンボルを解決できないため、一連の欠落したシンボルが表示されます。同様に、オプションBを使用すると、他の外部ライブラリはアンダースコア付きの小文字を使用してコンパイルされるため、文句を言います。

リンク状態中にシンボル/関数を再マップする方法はありますか?代替手段はありますか?

4

1 に答える 1

1

FortranソースコードでISOCバインディングを使用する場合は、呼び出すCルーチンの名前を正確に指定できます。特定のルーチンに応じて、アンダースコアを含めるかどうかを指定します。「バインディング名」でも大文字と小文字が区別されるため、ルーチン名のこの側面を制御することもできます。次に、コンパイラオプションを使用して、コンパイラが名前をそれ以上変更しないようにします。

于 2010-09-28T20:37:47.680 に答える