0

gfortanコンパイラを使用してFortranプログラムをコンパイルする際に問題が発生しました。メインプログラムはmain.fにあります。だから、私はコンソールに書きます:

gfortran D:\test\test.f

しかし、次のような多くのエラーが表示されます。

 C:\Users\Efds~1\AppData\Local\Temp\cchFNGgc.o:test.f:<.test+0x3a>: undefined reference to '_gridw_'
 C:\Users\Efds~1\AppData\Local\Temp\cchFNGgc.o:test.f:<.test+0x3a>: undefined reference to '_gridz_'
 etc.

gridw関数などgridzが他の*.fファイルにあるためだと思います。しかし、これらすべてをリンクする方法がわかりません。

また、Compaq Visual Fortran Complierを使おうとしましたが、役に立ちませんでした。

4

2 に答える 2

2

複数のソースファイルをコンパイルして1つの実行可能ファイルにリンクするための基本的なコマンドは次のとおりです。

gfortran -o executable source1.f source2.f source3.f

.f指定するファイルは、それが依存する他のソースファイルの右側に名前が付けられていることに注意してください。これらすべて、およびその他の多くのことは、コンパイラのドキュメントで十分にカバーされています。

于 2012-09-28T14:21:40.917 に答える
0

上記のように、同じコマンドで複数のファイルをコンパイルできますが、それは非常に珍しいことです。

オブジェクトファイル( ".o")よりも最初にコンパイルすることをお勧めします。

gfortran -c gridw.f
gfortran -c gridz.f

そして、プログラムをコンパイルします

gfortran test.f grodw.o gridz.o

リンクするファイルがたくさんある場合は、ライブラリを作成すると面白いかもしれません。

ar cru mylib.a gridw.o gridz.o
gfortran test.f mylib.a

ライブラリにlibSOMETHING.aという名前を付けると、次のように書くことができます。

gfortran test.f -lSOMETHING
于 2012-10-03T15:06:43.287 に答える