GCC を使用して Fortran と C バイナリをリンクする方法: 未定義の参照エラーを解決するためのガイド

Barbara Streisand
リリース: 2024-10-27 03:49:29
オリジナル
760 人が閲覧しました

How to Link Fortran and C   Binaries Using GCC: A Guide to Resolving Undefined Reference Errors?

GCC を使用した Fortran と C バイナリのリンク

Fortran と C コードの両方を使用するプロジェクトのリンクは、関連するバイナリ間の非互換性により困難になる場合があります。図書館。 g または gfortran を使用してこのようなプロジェクトをコンパイルおよびリンクしようとすると、未定義の参照エラーが頻繁に発生します。

たとえば、次のコードを考慮してください。

<code class="fortran">subroutine print_hi() bind(C)
  implicit none
  write(*,*) "Hello from Fortran."
end subroutine print_hi</code>
ログイン後にコピー
<code class="cpp">#include <iostream>

extern "C" void print_hi(void);

using namespace std;

int main() {
  print_hi();
  cout << "Hello from C++" << endl;
  return 0;
}</code>
ログイン後にコピー

これらのファイルを g でコンパイルするまたは gfortran はオブジェクト ファイルを個別に生成しますが、それらを g を使用してリンクすると、Fortran ライブラリへの未定義の参照が発生します。同様に、gfortran を使用すると、C ライブラリへの未定義の参照が発生します。

この問題を解決するには、リンク段階で適切なライブラリをリンクする必要があります。 g の場合、これは、リンク コマンドに -lgfortran フラグを追加することで実現できます。

g++ main.o print_hi.o -o main -lgfortran
ログイン後にコピー

このフラグは、必要な Fortran ライブラリにリンクします。あるいは、gfortran を -lstdc フラグとともに使用して、必要な C ライブラリにリンクすることもできます。

gfortran main.o print_hi.o -o main -lstdc++
ログイン後にコピー

適切なリンク フラグを指定することで、プログラマは Fortran と C コードを組み合わせたプロジェクトを適切にリンクでき、次のことが可能になります。両方の言語の機能をアプリケーションで活用します。

以上がGCC を使用して Fortran と C バイナリをリンクする方法: 未定義の参照エラーを解決するためのガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!