我想编写一个使用 NetCDF 的 Fortran 程序。为此,我必须将 netcdf 模块放在硬盘的某个位置,并告诉我的编译器在哪里找到它。在 Synaptic 中,安装了以下软件包:
netcdf-bin
nco
netcdf-doc
libnetcdf-dev
libnetcdf6
libnetcdf-dev 尤其承诺“提供使用 C、C++、Fortran 77 和 Fortran 90 进行开发所需的一切”;但是,我在系统上找不到这些库,因此无法进行任何开发。这些库可能在哪里?它们既不在 /usr/share 中,也不在 /usr/lib 中。一般来说,我如何才能找到软件包在我的计算机上安装其文件的位置?
答案1
如果您打开 Synaptic 并关注任何已安装的包,然后单击“属性”按钮,您将看到带有“已安装的文件”选项卡的对话框。
因此,如果您通过打包系统安装了 libnetcdf-dev,则netcdf 库位于其中/usr/lib/
并包含文件。/usr/include
答案2
除了使用系统工具外,nc-配置nf-config 可以帮助您找到这些详细信息。如果 netcdf 是由您或您组织中的其他人编译的,这可能会有所帮助。
我相信nf-config
它只是在 netcdf 4.2 发布后才开始发货,因为那时 fortran 库被拆分成不同的包。因此,如果您无法使用 找到相关的 fortran 信息nc-config
,请检查是否nf-config
存在某处并使用它。
从 4.2 版开始,三个 [c、c++、fortran] 库作为单独的包发布。
最后,这是示例输出的nc-config --all
:
This netCDF 4.2.1.1 has been built with the following features:
--cc -> gcc
--cflags -> -I/usr/local/include -I/share/ed/local/spike/include
--libs -> -L/usr/local/lib -lnetcdf
--has-c++ -> no
--cxx ->
--has-c++4 -> yes
--cxx4 -> g++
--fc -> gfortran
--fflags -> -g -O2 -I/usr/local/include
--flibs -> -L/usr/local/lib -lnetcdff -lnetcdf -lnetcdf
--has-f90 -> yes
--has-dap -> yes
--has-nc2 -> yes
--has-nc4 -> yes
--has-hdf5 -> yes
--has-hdf4 -> no
--has-pnetcdf-> no
--has-szlib ->
--prefix -> /usr/local
--includedir-> /usr/local/include
--version -> netCDF 4.2.1.1
左栏有可以发送到的选项,nc-config
而不是--all
产生更具体的输出。