【问题标题】:Netcdf-Fortran failure when installing: netcdf-fortran-4.5/nf03_test安装时 Netcdf-Fortran 失败:netcdf-fortran-4.5/nf03_test
【发布时间】:2021-12-30 11:13:11
【问题描述】:

我很绝望,希望有人能够解决这个问题: 我正在尝试使用 Intel 编译器在 Fedora 35 中安装 netcdf-fortran。为此,我首先在 /opt/intel/oneapi 中安装了来自 intel 的 ONEAPI。然后,我安装 https://gmplib.org/download/gmp/gmp-6.2.0.tar.lz

https://www.mpfr.org/mpfr-current/mpfr-4.1.0.tar.gz

https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz

git 克隆https://gnu.googlesource.com/gcc

git checkout 发布/gcc-10

source /opt/intel/oneapi/setvars.sh intel64

导出 PATH=/opt/intel/oneapi/compiler/2021.4.0/linux/bin:$PATH

导出 LD_LIBRARY_PATH=/opt/intel/oneapi/compiler/2021.4.0/linu/lib:$LD_LIBRARY_PATH

导出 PKG_CONFIG_PATH=/opt/intel/oneapi/compiler/2021.4.0/lib/pkgconfig:$PKG_CONFIG_PATH

导出 C_INCLUDE_PATH=/opt/intel/oneapi/compiler/2021.4.0/linux/include:$C_INCLUDE_PATH export CPLUS_INCLUDE_PATH=/opt/intel/oneapi/compiler/2021.4.0/linux/include:$CPLUS_INCLUDE_PATH

然后导出 utilities 目录,我将在其中安装所有这些包并相应地导出它。 然后,我继续安装:

szip-2.1.1.tar

libjpeg-turbo-2.1.2

gzip-1.11

bzip2-1.0.8

libuuid-1.0.3

布罗利

gperf-3.1

gettext-0.21

hdf-4.2.15

hdf5-1.13.0

netcdf-c-4.8.1

一切都可以编译并且工作正常。然而,当我尝试安装 https://downloads.unidata.ucar.edu/netcdf-fortran/4.5.3/netcdf-fortran-4.5.3.tar.gz 然后它不断失败并因错误而失败: make[3]: * [Makefile:728: test-suite.log] 错误 1

make[2]: * [Makefile:836: check-TESTS] 错误 2

make[2]: 离开目录'/SOME/LOCAL/ADDRESS/netcdf-fortran-4.5.0/nf03_test'

make[1]: * [Makefile:917: check-am] 错误 2

make[1]: 离开目录'/SOME/LOCAL/ADDRESS/netcdf-fortran-4.5.0/nf03_test'

我不知道是什么问题,但不是版本问题,即使我安装旧版本,错误仍然相同。

我尝试按照我找到的有关如何安装这些库的说明进行操作。

有人可以给我一个关于如何做到这一点的建议吗?

我的配置如下: CC=icc FC=ifort F77=ifort CPP="icc -E" ./configure --prefix=$PRFX --with-sysroot=$PRFX --with-pic

我已经定义: PRFX=/某些/本地/地址/

提前谢谢你,

【问题讨论】:

    标签: netcdf


    【解决方案1】:

    当你说“......然后一切都编译并正常工作”时。你的意思是你用ONEAPI编译了所有这些包吗?还是您只是从存储库中安装了这些?

    当所有其他依赖项都使用相同的编译器编译时,安装 netcdf-f 是可以预见的。或者您应该参考交叉编译来了解所有必需的依赖项。

    您是否使用 ONEAPI 编译了 hdf5 和 netcdf-c(它们是 netcdf-fortran 的基本依赖项之一)?如果没有,我建议你先这样做。

    我意识到在编译 netcdf-fortran 时使用与 GCC 不同的编译器会产生有关共享库的错误。您应该尝试通过在“配置”阶段添加“--disable-shared --enable-static”来使用静态库进行编译(有关详细说明,请参阅this link 的“使用静态库构建”部分)。确保明确链接“include”和“lib” 使用 netcdf-f 库时的目录。

    【讨论】:

    • 感谢红鞋的回答。除了这四个之外,我确实使用 ONEAPI 编译了所有内容: gmp-6.2.0 mpfr-4.1.0 mpc-1.2.1 gnu.googlesource.com/gcc-10 需要这四个才能使用 ONEAPI 进行任何其他编译。出于某种原因,使用 ONEAPI 编译时需要一些内置的 gcc-10 库。所以我确保导出正确的路径。其余的包都是用 ONEAPI 100% 编译的。我已经尝试过您提供的指向 NetCDF 网页的链接。我跟着它,但我仍然不断出错。所以,我会试试你的建议 --disable-shared --enable-static 谢谢
    猜你喜欢
    • 2013-11-11
    • 2017-06-27
    • 2012-12-06
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    • 2020-04-17
    相关资源
    最近更新 更多