• 締切済み

c++からfortranの関数を呼び出す

Linux上でintel fortran compilerとc compilerを使っているものです。 cのプログラムからfortranで書かれたsubroutineやfunction を呼び出したいと考えています。 いろいろネット上を調べたのですが、どれも細かいことは書いていても 具体的にどのようなコマンドを実行すればいいのか等については 部分的にしか書いておらず、よく把握できていません。 どなたか、非常に簡単なプログラムで結構ですので、 具体的なプログラムと、実行すべきコマンドについて 具体例を挙げて教えていただけないでしょうか? もしくは、そのようなページを教えてください。 よろしくお願い致します。

みんなの回答

回答No.3

こんばんは. そのものずばりの内容が検索で引っ掛かるようですが… 必要な作業は… (1) C++ 側のコードでリンケージを適切に設定する(extern "C") (2a) ifortでリンクする場合はリンク時に -lstdc++ 等として C++ の標準ライブラリをリンクし,エントリポイントが C++ 側にあることを明示するために -nofor_maIn というオプションを与える (2b) icpcでリンクする場合は -lifport -lifcore 等として Fortran のライブラリをリンクする お好きな方法でどうぞ.

参考URL:
http://www.velocityreviews.com/forums/t288905-intel-compiler-81-c-calling-fortran-routine.html
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

C コンパイラはどこのやつを使ってるんだろう. Intel C Compiler かなぁ. たぶん, 「具体的にどのようなコマンドを実行すればいいのか等」は「それぞれの言語の中ではできている」ことを前提に書いてないだけじゃないかなぁ. いくつかのサイトを例示してくれれば分かるけど.

回答No.1

>具体的なプログラムと、実行すべきコマンドについて >具体例を挙げて教えていただけないでしょうか? 貴方が使っているコンパイラの詳細が書かれてないのに、どうやって回答しろと? 回答をするには、Cの種類、FORTRANの種類、それぞれのバージョン、開発環境、実行環境のスペックとか、色々な情報が必要。 貴方は、1度しか会った事がない、身元をよく知らない知人からの突然の電話で「道に迷いました。家に帰れません」って言われて、その場で電話で家まで案内出来ますか? 出来ないでしょ。まずは「今、どこにいる?」「君の家の住所は?」とか、詳しい状況を聞かないと無理でしょ。 現在の状況も何も告げずに、いきない「道に迷った」って言われてもねぇ…。