ホームページ  >  記事  >  バックエンド開発  >  ライブラリの依存関係を失わずに Fortran と C バイナリをリンクするにはどうすればよいですか?

ライブラリの依存関係を失わずに Fortran と C バイナリをリンクするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-26 03:28:28872ブラウズ

 How to Link Fortran and C   Binaries Without Missing Library Dependencies?

Fortran と C バイナリのリンク: ライブラリの不一致の解決

C と Fortran コードの両方を含むプロジェクトを開発する場合、結果として得られるバイナリをまとめて、一貫したプログラムを作成します。ただし、g または gfortran を単独で使用してこのようなプロジェクトをコンパイルしようとすると、ライブラリの依存関係が欠落しているためにエラーが発生する可能性があります。

これらの問題を解決するには、必要なライブラリを指定する適切なリンク フラグを使用することが不可欠です。

C と Fortran バイナリをリンクするためのソリューション

C と Fortran が関係するプロジェクトをリンクする場合は、次の手順に従います:

  • g を使用して C ソース コードをコンパイルします: g -c main.cpp -o main.o
  • gfortran を使用して Fortran ソース コードをコンパイルします: gfortran -c print_hi.f90 -o print_hi.o
  • g を使用してコンパイルされたオブジェクト ファイルをリンクします: g main.o print_hi.o -o main -lgfortran

このコマンドには、リンク時に必要な Fortran ライブラリ (-lgfortran) が含まれ、それによって未定義の問題が解決されます。 g 単独で参照エラーが発生しました。

代替アプローチ

リンクに gfortran を使用したい場合は、-lstdc フラグを渡すことで同じ結果を得ることができます。

gfortran main.o print_hi.o -o main -lstdc

このフラグは、リンク中に必要な C ライブラリ (-lstdc ) を組み込み、gfortran を排他的に使用するときに直面する未定義の参照に対処します。

適切なリンク フラグを利用することで、C バイナリと Fortran バイナリを完全に機能するプログラムに組み合わせることができます。

以上がライブラリの依存関係を失わずに Fortran と C バイナリをリンクするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。