わかりました、ここに初心者の質問があります。
Ubuntuでgfortranを使用してsimple_xy_wr.f90 (netCDFサンプルプログラム)をコンパイルしようとしていますが、かなりばかげたことをしているに違いありません。私はFortranをコンパイルした経験があまりありません。
まず、libnetcdf-devパッケージをインストールしました。これには、次のようなファイルが含まれています。
/usr/lib/libnetcdf.a
/usr/lib/libnetcdff.a
/usr/include/netcdf.mod
だから、私は(のようなさまざまなコマンドのような)コードをコンパイルしようとしました
f95 -o xy -I/usr/include/ -L/usr/lib/ -lnetcdff -lnetcdf simple_xy_wr.f90
次の出力が得られます
/tmp/ccE6g7sr.o: In function `check.1847':
simple_xy_wr.f90:(.text+0x72): undefined reference to `__netcdf_MOD_nf90_strerror'
/tmp/ccE6g7sr.o: In function `MAIN__':
simple_xy_wr.f90:(.text+0x284): undefined reference to `__netcdf_MOD_nf90_create'
simple_xy_wr.f90:(.text+0x2b6): undefined reference to `__netcdf_MOD_nf90_def_dim'
simple_xy_wr.f90:(.text+0x2e8): undefined reference to `__netcdf_MOD_nf90_def_dim'
simple_xy_wr.f90:(.text+0x432): undefined reference to `__netcdf_MOD_nf90_def_var_manydims'
simple_xy_wr.f90:(.text+0x468): undefined reference to `__netcdf_MOD_nf90_enddef'
simple_xy_wr.f90:(.text+0x4aa): undefined reference to `__netcdf_MOD_nf90_put_var_2d_fourbyteint'
simple_xy_wr.f90:(.text+0x4cb): undefined reference to `__netcdf_MOD_nf90_close'
collect2: error: ld returned 1 exit status
適切なライブラリを含めていると思います。たとえば、__netcdf_MOD_nf90_strerrorが存在するはずです。
$ nm /usr/lib/libnetcdff.a | grep __netcdf_MOD_nf90_strerror
000000000004a100 T __netcdf_MOD_nf90_strerror
私は何が間違っているのですか?
(FWIW、私が見たいくつかの関連する参考文献を以下に示します。
)。