C++ コード用の Fortran 77 ラッパーを作成しようとしています。それに関する情報は見つかりませんでした。アイデアは、Fortran 77 プログラムで C++ で書かれた lib の from 関数を使用することです。
誰もそれを行う方法を知っていますか? ありがとう!
ローレンス リバモア国立研究所は、複数の言語で書かれたソフトウェアを単一のまとまりのあるアプリケーションに統合するための、 Babelと呼ばれるツールを開発しました。単純なニーズであれば、おそらく C++ コードに C ラッパーを配置して、Fortran から呼び出すことができます。ただし、より高度なニーズがある場合は、Babelを検討する価値があるかもしれません。
C から Fortran を呼び出すのは簡単ですが、Fortran から C を呼び出すのは難しいかもしれません。Fortran から C++ を呼び出すのは難しいかもしれません。
私は他の場所にいくつかのメモを持っています。これらはかなり古いものですが、この種の分野では急速に変化するものは何もないため、まだ有用な指針がいくつかあるかもしれません。
残念ながら、これを行う標準的な方法はなく、コンパイラが異なればわずかに異なる方法で行われる場合もあります。そうは言っても、大きな頭痛の種に遭遇する可能性が高いのは、文字列を渡すときだけです。上記のリソースは、CNFと呼ばれるライブラリを指しています。これは主に、簿記をシュガーする C マクロを提供することによって、ここで役立つことを目的としています。
ただし、短いバージョンは次のとおりです。
foo
を_foo
やfoo_
その他のバリアントに変換します (コンパイラ ドキュメントを参照)。それはあなたが知る必要があることの大部分です。残りは厄介な詳細であり、コンパイラとリンカのドキュメントと友達になることです。おそらく望んでいたよりも、リンカーについてより多くのことを知ることになります。